window微信小游戏修改尝试
修改代码并压缩成wxapkg后发现,出现了。 什么加载小程序代码包出错。
开始真正破解之旅....
第一步:寻找突破口, 看到了加载小程序
1. 微信安装目录搜索 “加载小程序失败”
1 | Get-ChildItem -Path "C:\Users\Administrator\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\8531\extracted" -Recurse -File | Select-String -Pattern "加载小程序" -List |
搜索扑了一个空。。。
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 既可以进程居然可以包含自己。所有代码都在内存中。
拿到了签名信息:
这些是未加密的, 我估计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应用程序修改指令后且移除了签名信息的版本
改完后现在小程序代码可以随便整了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构