【js逆向案例五】瑞数通杀模版

好久没有发了,这次水一篇

python 复制代码
let setProxyArr = function (proxyObjArr) {
    for (let i = 0; i < proxyObjArr.length; i++) {
        const handler = `{
    get:function(target,property,receiver){
    console.log("方法:","get","对象","${proxyObjArr[i]}","属性:",
property,"属性类型:",typeof property,"属性值:",target[property],"属性值类型:",typeof target[property]);
return Reflect.get(...arguments)
    },
    set:function(target,property,value,receiver){
    console.log("方法:","set","对象:","${proxyObjArr[i]}","属性:",
property,"属性类型:",typeof property,"属性值:",value,"属性值类型:",typeof target[property]);
    return Reflect.set(...arguments);
    }
  }`;
        eval(`try{
        ${proxyObjArr[i]};
        ${proxyObjArr[i]} = new Proxy(${proxyObjArr[i]},${handler});
        } catch (e){
         ${proxyObjArr[i]} = {};
         ${proxyObjArr[i]} = new Proxy(${proxyObjArr[i]},${handler});
         }`);
    }
}

function watch(object) {
    const handler = {
        get: function (target, property, receiver) {
            if (property.includes('application')) {
                debugger;
            }
            if (property !== 'isNaN' && property !== 'encodeURI' && property !== "Uint8Array" && property !== 'undefined' && property !== 'JSON') {
                console.log("方法:", "get", "对象", target, "属性:",
                    property, "属性类型:", typeof property, "属性值:", target[property], "属性值类型:", typeof target[property]);
            }
            return Reflect.get(...arguments)

        },
        set: function (target, property, value, receiver) {
            console.log("方法:", "set", "对象:", target, "属性:",
                property, "属性类型:", typeof property, "属性值:", value, "属性值类型:", typeof target[property]);
            return Reflect.set(...arguments);
        }
    }
    return object
    return new Proxy(object, handler)
}

// function watch(obj, obj_name) {
//     // 如果 obj 是 undefined 或 null,返回原值
//     if (obj === undefined || obj === null) {
//         console.log(`警告: "${obj_name}" 是 ${obj === null ? 'null' : 'undefined'},跳过代理`);
//         return obj;
//     }
//
//     // 如果不是对象类型(包括函数),也返回原值
//     if (typeof obj !== 'object' && typeof obj !== 'function') {
//         console.log(`警告: "${obj_name}" 不是对象或函数类型,而是 ${typeof obj},跳过代理`);
//         return obj;
//     }
//
//     const handler = {
//         get(target, property, receiver) {
//             if (property === 'toJSON') {
//                 return target[property];
//             }
//             console.log(
//                 `方法: get  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 属性值类型: ${typeof target[property]}`
//             );
//             return Reflect.get(target, property, receiver);
//         },
//         set(target, property, value, receiver) {
//             console.log(
//                 `方法: set  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 属性值类型: ${typeof value}`
//             );
//             return Reflect.set(target, property, value, receiver);
//         },
//         has(target, property) {
//             console.log(
//                 `方法: has  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 检查自身或原型链属性是否存在`
//             );
//             return Reflect.has(target, property);
//         },
//         ownKeys(target) {
//             console.log(
//                 `方法: ownKeys  | 对象: "${obj_name}" | 获取自身可枚举属性键`
//             );
//             return Reflect.ownKeys(target);
//         },
//         getOwnPropertyDescriptor(target, property) {
//             console.log(
//                 `方法: getOwnPropertyDescriptor  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 获取属性描述符`
//             );
//             return Reflect.getOwnPropertyDescriptor(target, property);
//         },
//         defineProperty(target, property, descriptor) {
//             console.log(
//                 `方法: defineProperty  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 定义或修改属性描述符: ${JSON.stringify(descriptor)}`
//             );
//             return Reflect.defineProperty(target, property, descriptor);
//         },
//         deleteProperty(target, property) {
//             console.log(
//                 `方法: deleteProperty  | 对象: "${obj_name}" | 属性: ${typeof property === 'symbol' ? property.toString() : property} | 属性类型: ${typeof property} | 删除属性`
//             );
//             return Reflect.deleteProperty(target, property);
//         },
//         getPrototypeOf(target) {
//             console.log(
//                 `方法: getPrototypeOf  | 对象: "${obj_name}" | 获取原型链`
//             );
//             return Reflect.getPrototypeOf(target);
//         },
//         setPrototypeOf(target, proto) {
//             console.log(
//                 `方法: setPrototypeOf  | 对象: "${obj_name}" | 设置新原型: ${proto ? proto.constructor.name : 'null'}`
//             );
//             return Reflect.setPrototypeOf(target, proto);
//         },
//         // 为函数添加 apply 和 construct 处理器
//         apply(target, thisArg, argumentsList) {
//             console.log(
//                 `方法: apply  | 对象: "${obj_name}" | 函数调用 | 参数数量: ${argumentsList.length}`
//             );
//             return Reflect.apply(target, thisArg, argumentsList);
//         },
//         construct(target, argumentsList, newTarget) {
//             console.log(
//                 `方法: construct  | 对象: "${obj_name}" | 构造函数调用 | 参数数量: ${argumentsList.length}`
//             );
//             return Reflect.construct(target, argumentsList, newTarget);
//         }
//     };
//
//     return new Proxy(obj, handler);
// }

const safeFunction = function safeFunction(func) {
    //处理安全函数
    Function.prototype.$call = Function.prototype.call;
    const $toString = Function.toString;
    const myFunction_toString_symbol = Symbol('('.concat('', ')'));

    const myToString = function myToString() {
        return typeof this === 'function' && this[myFunction_toString_symbol] || $toString.$call(this);
    }

    const set_native = function set_native(func, key, value) {
        Object.defineProperty(func, key, {
            "enumerable": false,
            "configurable": true,
            "writable": true,
            "value": value
        });
    }

    delete Function.prototype['toString'];
    set_native(Function.prototype, "toString", myToString);
    set_native(Function.prototype.toString, myFunction_toString_symbol, "function toString() { [native code] }");

    const safe_Function = function safe_Function(func) {
        set_native(func, myFunction_toString_symbol, "function" + (func.name ? " " + func.name : "") + "() { [native code] }");
    }

    return safe_Function(func)
}
window = global
window.Buffer = Buffer
window.Window = function Window() {
}
Object.setPrototypeOf(window, window.Window.prototype)
window.setTimeout = function setTimeout() {
}
window.setInterval = function setInterval() {
}
window.clearInterval = function clearInterval() {
}
window.HTMLCollection = function HTMLCollection() {
    this.length = 0;
}
window.addEventListener = function addEventListener() {
}
window.attachEvent = function attachEvent() {
}
window.IDBFactory = function IDBFactory() {
    // console.log("IDBFactory", arguments);
}
window.IDBOpenDBRequest = function IDBOpenDBRequest() {
    // console.log("IDBOpenDBRequest", arguments);
}
window.IDBFactory.prototype.open = function open(arg) {
    if (arg === 'EkcP') {
        return watch(new IDBOpenDBRequest(), "IDBOpenDBRequest")
    }
    // console.log("IDBFactory.open", arguments);
}
window.DOMParser = function DOMParser() {
}
window.XMLHttpRequest = function XMLHttpRequest() {
    // console.log("XMLHttpRequest", arguments);
}
window.XMLHttpRequest.prototype.open = function (method, url) {
    console.log("window.XMLHttpRequest.prototype.open :", method, url);
    return url
}
window.XMLHttpRequest.prototype.send = function send() {
    // console.log('window.XMLHttpRequest.send的参数为===>', arguments)
}
window.XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader() {
    // console.log('window.XMLHttpRequest.setRequestHeader的参数为===>', arguments)
}
window.XMLHttpRequest.prototype.getResponseHeader = function getResponseHeader() {
    // console.log('window.XMLHttpRequest.getResponseHeader的参数为===>', arguments)
}
window.copy = function copy() {
}
window.CanvasRenderingContext2D = function CanvasRenderingContext2D() {
    // console.log("CanvasRenderingContext2D", arguments);
}
window.CanvasRenderingContext2D.prototype.getImageData = function getImageData() {

}
window.MutationObserver = function MutationObserver() {
}
window.MutationObserver.prototype.observe = function observe() {
    // console.log("MutationObserver.prototype.observe", arguments);
}
window.webkitRequestFileSystem = function webkitRequestFileSystem() {
    // console.log("webkitRequestFileSystem", arguments);
}
window.unmonitor = function unmonitor() {
}
window.CSSStyleDeclaration = function CSSStyleDeclaration() {
    // console.log("CSSStyleDeclaration", arguments);
}
window.DeprecatedStorageQuota = function DeprecatedStorageQuota() {
    // console.log("DeprecatedStorageQuota", arguments);
}
window.MimeTypeArray = function MimeTypeArray() {
    // console.log("MimeTypeArray", arguments)
}
window.open = function open() {
}
window.NetworkInformation = function NetworkInformation() {
}
window.BatteryManager = function BatteryManager() {
    this.charging = true
    this.chargingTime = Infinity
    this.dischargingTime = Infinity
    this.level = 0.95
    this.onchargingchange = null
    this.onchargingtimechange = null
    this.ondischargingtimechange = null
    this.onlevelchange = null
}
window.XPathExpression = function XPathExpression() {

}


// Node
window.Node = function Node() {

}
window.Node.prototype.appendChild = function appendChild() {
}
window.Node.prototype.removeChild = function removeChild() {
}


// Element
window.Element = function Element() {
    window.Node.call(this);
}
window.Element.prototype = Object.create(Node.prototype);
window.Element.prototype.constructor = window.Element;
window.Element.prototype.getElementsByTagName = function getElementsByTagName(tagName) {
    if (tagName === "i") {
        return watch(new HTMLCollection(), "i🔴")
    }
    console.log(`Element.prototype.getElementsByTagName 的参数是🔴====> ${tagName}`);
}
window.Element.prototype.getAttribute = function getAttribute(arg) {
    if (arg === "r") {
        return "m"
    } else if (arg === "webdriver" || arg === "selenium" || arg === "driver") {
        return null
    }
    console.log(`Element.prototype.getAttribute 的参数是🔴====> ${arg}`);
}

// HTMLElement
window.HTMLElement = function HTMLElement() {
    window.Element.call(this);
}
window.HTMLElement.prototype = Object.create(Element.prototype);
window.HTMLElement.prototype.constructor = window.HTMLElement;


// div => HTMLDivElement
window.HTMLDivElement = function HTMLDivElement() {
    window.HTMLElement.call(this);
}
window.HTMLDivElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLDivElement.prototype.constructor = window.HTMLDivElement;


// head => HTMLHeadElement
window.HTMLHeadElement = function HTMLHeadElement() {
    window.HTMLElement.call(this);
}
window.HTMLHeadElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLHeadElement.prototype.constructor = window.HTMLHeadElement;


// meta => HTMLMetaElement
window.HTMLMetaElement = function HTMLMetaElement() {
    window.HTMLElement.call(this);
}
window.HTMLMetaElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLMetaElement.prototype.constructor = window.HTMLMetaElement;
window.HTMLMetaElement.prototype.parentNode = new HTMLHeadElement();


// script => HTMLScriptElement
window.HTMLScriptElement = function HTMLScriptElement() {
    window.HTMLElement.call(this);
}
window.HTMLScriptElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLScriptElement.prototype.constructor = window.HTMLScriptElement;
window.HTMLScriptElement.prototype.parentElement = new HTMLHeadElement();


// form => HTMLFormElement
window.HTMLFormElement = function HTMLFormElement() {
    window.HTMLElement.call(this);
}
window.HTMLFormElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLFormElement.prototype.constructor = window.HTMLFormElement;


// html => HTMLHtmlElement
window.HTMLHtmlElement = function HTMLHtmlElement() {
    window.HTMLElement.call(this);
    this.style = new CSSStyleDeclaration()
}
window.HTMLHtmlElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLHtmlElement.prototype.constructor = window.HTMLHtmlElement;


// a => HTMLAnchorElement
window.HTMLAnchorElement = function HTMLAnchorElement() {
    window.HTMLElement.call(this);
    this.href = "https://cggl.swun.edu.cn/sfw_cms/e?page=cms.psms.gglist&orgType=21&typeDetail=XQ&cate=100307"
    this.hostname = "cggl.swun.edu.cn"
    this.protocol = "https:"
    this.port = ""
    this.pathname = "/sfw_cms/e"
    this.hash = ""
    this.search = "?page=cms.psms.gglist&orgType=21&typeDetail=XQ&cate=100307"
}
window.HTMLAnchorElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLAnchorElement.prototype.constructor = window.HTMLAnchorElement;


// canvas => HTMLCanvasElement
window.HTMLCanvasElement = function HTMLCanvasElement() {
    window.HTMLElement.call(this);
}
window.HTMLCanvasElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLCanvasElement.prototype.constructor = window.HTMLCanvasElement;
window.HTMLCanvasElement.prototype.toBlob = function toBlob() {
}
window.HTMLCanvasElement.prototype.toDataURL = function toDataURL() {
}
window.HTMLCanvasElement.prototype.getContext = function getContext(arg) {
    if (arg === "2d"){
        return watch(new CanvasRenderingContext2D(), "2d")
    }
}


// input => HTMLInputElement
window.HTMLInputElement = function HTMLInputElement() {
    window.HTMLElement.call(this);
}
window.HTMLInputElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLInputElement.prototype.constructor = window.HTMLInputElement;
window.HTMLInputElement.prototype[Symbol.toPrimitive] = function (hint) {
    switch (hint) {
        case 'default':
            return '[object HTMLInputElement]';
        default:
            throw new Error();
    }
};

// iframe => HTMLIFrameElement
window.HTMLIFrameElement = function HTMLIFrameElement() {
    window.HTMLElement.call(this);
}
window.HTMLIFrameElement.prototype.constructor = window.HTMLIFrameElement;
window.HTMLIFrameElement.prototype.constructor = window.HTMLIFrameElement;


// body => HTMLBodyElement
window.HTMLBodyElement = function HTMLBodyElement() {
    window.HTMLElement.call(this);
}
window.HTMLBodyElement.prototype = Object.create(HTMLElement.prototype);
window.HTMLBodyElement.prototype.constructor = window.HTMLBodyElement;


// all => HTMLAllCollection
window.HTMLAllCollection = function HTMLAllCollection() {
}


window.Document = function Document() {
    window.Node.call(this)
}
window.Document.prototype = Object.create(Node.prototype);
window.Document.prototype.constructor = window.Document;
// delete global
// delete Buffer
delete __dirname
delete __filename
// delete process
window.top = window
window.self = window
window.window = window
window.indexedDB = watch(new IDBFactory(), "indexedDB")
window.ActiveXObject = undefined
window.CollectGarbage = undefined
window.name = ''
window.innerHeight = 1073
window.innerWidth = 1710
window.outerHeight = 1073
window.outerWidth = 1710
window.TEMPORARY = 0
window.chrome = watch({}, "chrome")


safeFunction(window.Window)
safeFunction(window.HTMLCollection)
safeFunction(window.addEventListener)
safeFunction(window.attachEvent)
safeFunction(window.IDBFactory)
safeFunction(window.IDBFactory.prototype.open)
safeFunction(window.DOMParser)
safeFunction(window.XMLHttpRequest)
safeFunction(window.copy)
safeFunction(window.CanvasRenderingContext2D)
safeFunction(window.CanvasRenderingContext2D.prototype.getImageData)
safeFunction(window.MutationObserver)
safeFunction(window.MutationObserver.prototype.observe)
safeFunction(window.webkitRequestFileSystem)
safeFunction(window.unmonitor)
safeFunction(window.CSSStyleDeclaration)
safeFunction(window.DeprecatedStorageQuota)
safeFunction(window.MimeTypeArray)
safeFunction(window.open)
safeFunction(window.NetworkInformation)
safeFunction(window.BatteryManager)
safeFunction(window.XPathExpression)
safeFunction(window.Document)
safeFunction(window.Node)
safeFunction(window.Node.prototype.appendChild)
safeFunction(window.Node.prototype.removeChild)
safeFunction(window.Element)
safeFunction(window.Element.prototype.getElementsByTagName)
safeFunction(window.Element.prototype.getAttribute)
safeFunction(window.HTMLElement)
safeFunction(window.HTMLDivElement)
safeFunction(window.HTMLHeadElement)
safeFunction(window.HTMLMetaElement)
safeFunction(window.HTMLScriptElement)
safeFunction(window.HTMLFormElement)
safeFunction(window.HTMLHtmlElement)
safeFunction(window.HTMLAnchorElement)
safeFunction(window.HTMLCanvasElement)
safeFunction(window.HTMLCanvasElement.prototype.toBlob)
safeFunction(window.HTMLCanvasElement.prototype.toDataURL)
safeFunction(window.HTMLCanvasElement.prototype.getContext)
safeFunction(window.HTMLInputElement)
safeFunction(window.HTMLIFrameElement)
safeFunction(window.HTMLBodyElement)
safeFunction(window.HTMLAllCollection)



meta = watch({
    0: watch(new HTMLMetaElement(), "meta0🔴"),
    1: watch(new HTMLMetaElement(), "meta1🔴"),
}, "meta🔴")
meta[1].content = "content文件"
// meta[1].content = "0braVdRWN8dlqLGAJle3XdiPoLHUGzNe7YWuvO3eJ0FL2HM4G02UzkCLo3ZDPe_H21eClreU6i8304cPzfl_aFgIPX_wsGovXLJA0uMcIkIWDKf3.r3CDxHOSpxmPaY5bAKr8bf5AWUDq5Jor_.kTjdzA2uf6tfWgE5nRR4E2U9"
script = watch({
    0: watch(new HTMLScriptElement(), "script0🔴"),
    1: watch(new HTMLScriptElement(), "script1🔴"),
    length: 2,
}, "script🔴")
script[0].innerText = ""
script[0].src = ""

function HTMLDocument() {
    this.visibilityState = "visible";
}

// HTMLDocument.prototype.documentElement = watch(new HTMLHtmlElement(), "html")
HTMLDocument.prototype.body = null
HTMLDocument.prototype.head = watch(new HTMLHeadElement(), "head")
HTMLDocument.prototype.all = watch(new HTMLAllCollection(), "all")
window.Document.prototype.createElement = function createElement(arg) {
    if (arg === "div") {
        return watch(new HTMLDivElement(), "div🔴")
    } else if (arg === "a") {
        return watch(new HTMLAnchorElement(), "a🔴")
    } else if (arg === "iframe") {
        return watch(new HTMLIFrameElement(), "iframe🔴")
    } else if (arg === "form") {
        return watch(new HTMLFormElement(), "form🔴")
    } else if (arg === "input") {
        return watch(new HTMLInputElement(), "input🔴")
    }
    console.log(`window.Document.prototype.createElement 的参数是🔴====> ${arg}`)
    debugger
}
window.Document.prototype.getElementById = function getElementById(id) {
    if (id === "T0cvvbuwl3my") {
        return meta[1]
    } else if (id === "root-hammerhead-shadow-ui") {
        return null
    }else if (id === "a"){
        return watch(new HTMLAnchorElement(), "a")
    }
    // console.log(`window.Document.prototype.getElementById 的参数是🔴====> ${id}`)
    debugger
}
window.Document.prototype.getElementsByTagName = function getElementsByTagName(tagName) {
    if (tagName === "base") {
        return new HTMLCollection()
    }
    if (tagName === "script") {
        return script
    }
    if (tagName === "meta") {
        return meta
    }
    console.log(`window.Document.prototype.getElementsByTagName 的参数是🔴====> ${tagName}`)
    debugger
}
window.Document.prototype.createExpression = function createExpression(arg1, arg2) {
    if (arg1 === '//html') {
        return watch(new XPathExpression())
    }
    console.log('window.Document.prototype.createExpression的参数为===>', arg1, arg2)
}
window.Document.prototype.addEventListener = function addEventListener() {
}
window.Document.prototype.attachEvent = function attachEvent() {
}
Object.setPrototypeOf(HTMLDocument.prototype, window.Document.prototype)
document = new HTMLDocument()
window.HTMLDocument = HTMLDocument
safeFunction(window.HTMLDocument)
safeFunction(window.Document.prototype.createElement)
safeFunction(window.Document.prototype.getElementById)
safeFunction(window.Document.prototype.getElementsByTagName)
safeFunction(window.Document.prototype.createExpression)
safeFunction(window.Document.prototype.addEventListener)
safeFunction(window.Document.prototype.attachEvent)


// Nacigator
function Navigator() {

}

Navigator.prototype.getBattery = function getBattery() {
    return Promise.resolve(watch(new BatteryManager()))
}
Navigator.prototype.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36'
Navigator.prototype.webkitPersistentStorage = watch(new DeprecatedStorageQuota(), "webkitPersistentStorage")
Navigator.prototype.mimeTypes = watch(new MimeTypeArray(), "mimeTypes")
Navigator.prototype.languages = [
    "zh-CN",
    "zh",
    "en"
]
Navigator.prototype.appVersion = '5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36'
Navigator.prototype.webdriver = false
Navigator.prototype.platform = 'MacIntel'
Navigator.prototype.vendor = 'Google Inc.'
Navigator.prototype.connection = watch(new NetworkInformation(), "connection")
navigator = new Navigator()
window.Navigator = Navigator
safeFunction(window.Navigator)
window.clientInformation = navigator


// Screen
function Screen() {

}

screen = new Screen()
window.Screen = Screen
safeFunction(window.Screen)


// History
function History() {

}

History.prototype.replaceState = function replaceState() {
}
history = new History()
window.History = History
safeFunction(window.History)
safeFunction(window.History.prototype.replaceState)


// Location
function Location() {

}
Location.prototype = {
    "ancestorOrigins": {},
    "href": "https://cggl.swun.edu.cn/sfw_cms/e?page=cms.psms.gglist&orgType=21&typeDetail=XQ&cate=100307",
    "origin": "https://cggl.swun.edu.cn",
    "protocol": "https:",
    "host": "cggl.swun.edu.cn",
    "hostname": "cggl.swun.edu.cn",
    "port": "",
    "pathname": "/sfw_cms/e",
    "search": "?page=cms.psms.gglist&orgType=21&typeDetail=XQ&cate=100307",
    "hash": ""
}
location = new Location()
window.Location = Location
safeFunction(window.Location)


// Storage
function Storage() {

}

Storage.prototype.setItem = function setItem(key, value) {
    this[key] = value;
}
Storage.prototype.getItem = function getItem(key) {
    if (key === "$_YWTU") {
        return "0Aih8Fb.rtReStwxT3OJsKlY5sdV0qbLSFhpNqj80Bl"
    }
    if (key === "_$rc") {
        return ".s7L1Ve209n8wYJBFWtPJqkpgJqt2f1Qf9mrztk.JNe2WF91cmgtRPxM_Wf1rUhx3ILmDs2E8Zvb1HgG7wAazKPskgE.6joEQpMJKtOGPFmicv09Aw0DRmj.LFwAcw1_OLP0XUt7DhGS_FAeukUJ.AsJFNVHUAslOWlfhyAS5szgzANpy0mtV2.C6A3HrdXMCTl5i8jA3_pVrAW8szIrgZCX3IACcxud_q9rkH3ntvSPrDvf9BQtg0gVy2PahF75WtTz_gOQ06W61eNotyf5o2WxRuNcStJXoXMNkIs6CpajbBIahDhU69OfpLRJj8r71xX7I9BmDutIE1X8h6UOFDbPRAVhehDhAGHi2KyW8jjHiGruflFTX7CikUCerT9uvsgPQke2oO4wALDVgR181jXyWXKQU7Gsfb7vddIVyrsKCJ7BKUMiailpzSv3SVHv27uUTgJoX9peKeapAE.PMpmISboS3jU7fQ4ncwQ9JmN9jdBBHtRXh1p5ABH9Zn6ylmRRBVRYVWQVKvFaoxCgjA7a3fl4ZgUqv1qdGT0n0vkJr92pVOIq6iT2ZSUaeW4k.JXe8iKFW6OOrGGEGJrwrDmQFvifr4DZVpaXfBY1n2CJ7skqEsmiRr5iivjROvFXB2xTeTygO6Y1Oa2p2b6YSACbIXBVlbJ84GrqW6jWhTjfhiE1cPFhMBfSsCOm4T2A4BSi7vwZHNzOkn0owE6MGjv3TbtovCtArS.6xmk7EprFkKXKcPD_5w.NqCZ_ZMzO5QIQpq"
    }
    if (key === "$_YVTX") {
        return "Wq"
    }
    return this[key] || null
}
Storage.prototype.removeItem = function removeItem(key) {
    delete this[key];
}
localStorage = new Storage()
sessionStorage = new Storage()
window.Storage = Storage;
safeFunction(window.Storage)
safeFunction(Storage.prototype.setItem)
safeFunction(Storage.prototype.getItem)
safeFunction(Storage.prototype.removeItem)


// Storage
function Storage() {

}
Storage.prototype.setItem = function setItem(key, value) {
    this[key] = value;
}
Storage.prototype.getItem = function getItem(key) {
    return this[key] || null
}
Storage.prototype.removeItem = function removeItem(key) {
    delete this[key];
}
localStorage = new Storage({
    "$_YWTU": "_bsnuYA1Q5KWa0zZ_0m9koRqf7qq6UDNBlP82jvm.el",
    "_$rc": "yLDmd.dXTHqFcr0_eLUMBZ6iLLlw8uKd0kJ.AJ908l8YoQjTXzbmRaOlWv0",
    "__#classType": "localStorage",
    "$_YVTX": "Wsq"
})
sessionStorage = new Storage({
    "$_YWTU": "_bsnuYA1Q5KWa0zZ_0m9koRqf7qq6UDNBlP82jvm.el",
    "$_YVTX": "Wsq"
})
window.Storage = Storage;
safeFunction(window.Storage)
safeFunction(Storage.prototype.setItem)
safeFunction(Storage.prototype.getItem)
safeFunction(Storage.prototype.removeItem)


// window = watch(window, 'window')
// document = watch(document, 'document')
// location = watch(location, 'location')
// history = watch(history, 'history')
// screen = watch(screen, 'screen')
// navigator = watch(navigator, 'navigator')
// localStorage = watch(localStorage, 'localStorage')
// sessionStorage = watch(sessionStorage, 'sessionStorage')


// setProxyArr(['navigator', "window", "history", "document", "location", "localStorage", "sessionStorage"])


// require("./ts")
// require("./tsload")
ts文件
tsload文件

function getCookie() {
    return document.cookie
}

console.log(getCookie())

通杀模版,下面的都试了试,都可以过

有大佬可以看一下后缀没有,就剩写一个后缀就直接通杀了

相关推荐
小宇的天下1 小时前
Calibre :Standard Verification Rule Format(SVRF) Manual (1-2)
前端·javascript·windows
GGGG寄了1 小时前
HTML——表单标签
前端·html
利刃大大1 小时前
【Vue】Vue介绍 && 声明式渲染 && 数据响应式
前端·javascript·vue.js·前端框架
Marshmallowc1 小时前
React stopPropagation 阻止冒泡失效?深度解析 React 17 事件委派机制变更与微前端冲突解决方案
前端·react.js·事件循环·微前端·前端架构
xiaohutushen2 小时前
紧急预警:微软 Edge Webview2 v144 升级导致 SAP GUI 严重白屏故障 (Note 3704912)
前端·microsoft·edge·abap·sap 用户·sap license·usmm
2501_944526422 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 多语言国际化实现
android·java·开发语言·javascript·flutter·游戏
CHU7290352 小时前
淘宝扭蛋机小程序前端功能详解:以交互设计赋能趣味体验
java·前端·小程序·php
ccino .2 小时前
【Portswigger : DOM XSS in jQuery selector sink using a hashchange event】
前端·jquery·xss
滴水未满2 小时前
uniapp的工程
前端·uni-app