;
//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)