[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/suping0/WeChatOpenDevTools-Python/main/scripts/hook.js [Back]  [Original]

;
//WeChatAppEx.exe
var module = Process.findModuleByName("WeChatAppEx.exe") || Process.findModuleByName('WeChatAppEx Framework')
var base = module.base;
// console.log(":",module.name);
// console.log(":",module.base);
// console.log(":",module.size);


Object.keys(address).forEach(key => {
    key != "Version" ? address[key] = base.add(address[key]) : false
});

send("[+] WeChatAppEx !");
send("[+] : " + address.Version);
send("[+] ...");

function readStdString(s) {
    var flag = s.add(23).readU8()
    if (flag == 0x80) {
        // 
        var size = s.add(8).readUInt()
        return s.readPointer().readUtf8String(size)
    } else {
        // 
        return s.readUtf8String(flag)
    }
}
function writeStdString(s, content) {
    var flag = s.add(23).readU8()
    if (flag == 0x80) {
        // 
        var orisize = s.add(8).readUInt()
        if (content.length > orisize) {
            throw "must below orisize!"
        }
        s.readPointer().writeUtf8String(content)
        s.add(8).writeUInt(content.length)
    } else {
        // 
        if (content.length > 22) {
            throw "max 23 for stack str"
        }
        s.writeUtf8String(content)
        s.add(23).writeU8(content.length)
    }
}
function sendMessage(msg) {
    msg === null || undefined ? send(msg) : send("[+] F12")
    // send("[+] F12")
}


function replaceParams() {
    Interceptor.attach(address.LaunchAppletBegin, {
        onEnter(args) {
            send("[+] HOOK! " + readStdString(args[1]))
            for (var i = 0; i < 0x1000; i += 8) {
                try {
                    var s = readStdString(args[2].add(i))
                    var s1 = s.replaceAll('"enable_vconsole":false', '"enable_vconsole": true')
                    // .replaceAll("md5", "md6")
                    // .replaceAll('"frameset":false', '"frameset": true')
                    //"frameset":false
                    if (s !== s1) {
                        writeStdString(args[2].add(i), s1)
                    }
                } catch (a) {
                }
            }
        }
    })

}


// 8555
if (address.MenuItemDevToolsString) {
    var menuItemDevToolsStringCr = new Uint8Array(address.MenuItemDevToolsString.readByteArray(7));
    var intptr_ = (menuItemDevToolsStringCr[3] & 0xFF) | ((menuItemDevToolsStringCr[4] & 0xFF) 

Web Proxy Viewer  |  New URL  |  Original Page