修改代码并压缩成wxapkg后发现,出现了。 什么加载小程序代码包出错。
开始真正破解之旅....
第一步:寻找突破口, 看到了加载小程序
1. 微信安装目录搜索 “加载小程序失败”
1 |
|
搜索扑了一个空。。。
2. 打开ida加载WeChatAppEx.exe继续搜索
又扑了一个空。。。。
3. 怀疑在publicLib.wxapkg和clientPublicLib.wxapkg中,但是加密了。没有wxid
通过ida,找对应解密的地方:wxid = clientlib
unwxapkg publicLib.wxapkg clientlib ==> 解压后搜索,扑了一个空
unwxapkg clientPublicLib.wxapkg clientlib ==> 解压后搜索,扑了一个空
4. 通过内存搜索,这玩意居然在微信进程中,很奇怪了, 开始使用ida打开
地址:D:\Program Files\Tencent\WeChat
发现没有啥鸟用,因为我修改了所有字符串,发现依旧弹出那个错误弹窗
5. 继续瞎尝试:
小程序的进程是: WeChatAppEx.exe, 弹窗是在这个进程触发的,并且这个弹窗是原生弹窗。明天重点关注这个
=============继续研究===================
通过SPY查看,发现所有看到小程序都是子窗口。 所有小程序又公用
我发现他们的进程ID一样, 那么我就可以理解chrome浏览器,每个标签一个小游戏。 只不过这个浏览器没有边界,只是单纯的集合窗口。
通过CE工具打开父进程,已经验证了我的猜想:
非常不可思议,WechatAppEx.exe 既可以进程居然可以包含自己。所有代码都在内存中。
拿到了签名信息:
{
"independent": false,
"md5": "6ed7104293e96ce66ff63adb4f63d16d",
"name": "/js/pocketSub.js"
},
{
"independent": false,
"md5": "56300dfe58baafcf527c0d2bde053ebc",
"name": "/js/gamesdk.js"
},
{
"independent": false,
"md5": "60a17409bbf89c9b6583c1491c04ae1f",
"name": "/js/pocket.js"
},
{
"independent": false,
"md5": "9ccea23a87fa80fe044baf4ba0795885",
"name": "__APP__"
}
]name其实就是解压后wxapkg文件值。
这些是未加密的, 我估计windows多了一层处理,先解密在进行md5计算
通过动态调试发现,比较MD5的地方,如果我让这个地方强行不一样,就会加载出现小程序代码包失败。
找到问题就好搞了, 将循环那一坨指令改成赋值语句,然后在走成功跳转的逻辑
最后记住成功跳: jmp loc_1429028D3
分析完毕, 开始对它进行手术改造:
windows版本改完居然不生效:还需要再看看
Mac 版本改造完成:/Applications/WeChat.app/Contents/MacOS/WeChatAppEx.app/Contents/Frameworks/WeChatAppEx Framework.framework/Versions/C/WeChatAppEx2_0
WeChatAppEx2_0是WeChatAppEx应用程序修改指令后且移除了签名信息的版本
改完后现在小程序代码可以随便整了。
外挂破解
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论