Files
2026-03-15 20:10:44 +08:00

49 lines
1.8 KiB
JavaScript

// 1. 获取微信主模块的基地址
var baseAddr = Process.getModuleByName("WeChat").base;
if (!baseAddr) {
console.error("[!] 找不到 WeChat 模块基址,请检查进程名。");
}
console.log("[+] WeChat base address: " + baseAddr);
var CndOnCompleteAddr = baseAddr.add(0x36BAFC0);
var videoCallbackFuncAddr = baseAddr.add(0x24C76C8);
var videoProtobufAddr = videoCallbackFuncAddr.add(0x54);
function videoInit() {
Interceptor.attach(videoProtobufAddr, {
onEnter: function (args) {
console.log("[+] 视频寄存器修改完成: X1=" + this.context.x1 + ", X2=" + this.context.x2, hexdump(this.context.x1, {
offset: 0,
length: 1028,
header: true,
ansi: true
}));
}
})
Interceptor.attach(CndOnCompleteAddr, {
onEnter: function (args) {
try {
const x2 = this.context.x2;
const currentFileId = x2.add(0x20).readPointer().readUtf8String();
const targetId = x2.add(0x40).readUtf8String();
const globalImageCdnKey = x2.add(0x60).readPointer().readUtf8String();
const globalAesKey1 = x2.add(0x78).readPointer().readUtf8String();
const globalMd5Key = x2.add(0x90).readPointer().readUtf8String();
const mp4Identity = x2.add(0xf0).readPointer().readUtf8String();
console.log("X2" + x2 + "[+] globalImageCdnKey: " + globalImageCdnKey + " globalAesKey1: " + globalAesKey1 +
" globalMd5Key: " + globalMd5Key + " currentFileId: " + currentFileId, " targetId:" + targetId + " mp4Identity:" + mp4Identity );
} catch (e) {
console.log("[-] Memory access error at onEnter: " + e);
}
}
})
}
setImmediate(videoInit);