本文写于微信版本3.9.11.19
当前小程序版本是11065
小程序版本查看
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF
这里借用了Jammny师傅的思路,https://mp.weixin.qq.com/s/hAvFEgYrejYAfFGk9gY50Q
之前开始看的时候部分代码应该是重写了,按文章的思路找不到, 但是搜字符串的大体思路是不变的,本文所提到的方法随时间的推移也可能会失效
这里需要用到WeChatOpenDevTools
https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python
作者没更新最新版的地址,我们自己手动找到并添加
到小程序位置把WeChatAppEx.exe 复制一份出来
紧接着拖到ida里打开
进行字串的搜索 快捷键是shift+F12(第一次打开这里很慢)
LaunchAppletBegin
然后在字串里面搜索
WxWork isMiniGame, exit!
得到结果之后我们到.rdata那边去,然后在定位该地址所引用的位置
选中那个位置然后按住快捷键x出的来的就是我们想要找的那个函数
然后一直往上滑,找到函数的入口点
这里 IDA 起始地址为140000000,那么相对偏移地址为:0x288887C,对应的json格式为:
{
"LaunchAppletBegin": "0x288887C",
..............
}
MenuItemDevToolsString
在IDA里面搜索 engineStart
去到.rdata下 找关键部分
在其上方就存了devTools的值
转为字符串类型就可以看到
然后在devtools出找出引用部分
去到cmp 指令处
此处地址即为第二处MenuItemDevToolsString的地址
还和前面一样去掉000000014
{
............
"MenuItemDevToolsString":"0x2896291",
............
}
SwitchVersion
继续搜索 字串"/devtools/wechat_%s.html"
在其上方 cmovnz 指令处即为SwitchVersion处的地址
{
............
"SwitchVersion":"0x26B9CD8",
............
}
此外还要注意需修改下Version
完整的address_11065_x64.json为
{
"LaunchAppletBegin": "0x2888872",
"MenuItemDevToolsString":"0x2896291",
"SwitchVersion":"0x26B9CD8",
"Version":11065
}
紧接着在修改下scripts/hook.js
添加一段当前版本的调用 case 11065
最后在 运行脚本 即可完成最新版F12开启控制台
python3 main.py -x