▒ 目录 ▒
🛫 导读
系列文章
- 【微信】【Windows端】开启2024最新版微信内置浏览器Devtools调试窗口 https://blog.csdn.net/kinghzking/article/details/136553641
- 【微信】【Windows端】开启2024最新版微信小程序Devtools调试窗口 https://blog.csdn.net/kinghzking/article/details/136562516
- 【微信】实战Adnroid上的小程序调试 https://blog.csdn.net/kinghzking/article/details/136509188
开发环境
版本号 | 描述 | |
---|---|---|
文章日期 | 2024-03-08 | |
操作系统 | Win11 - 22H2 | 22621.2715 |
WeChat.exe目录 | D:\Program Files (x86)\Tencent\WeChat | 小编使用的是[3.9.8.25] |
WeChatAppEx.exe路径 | %APPDATA%\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\9079\extracted\runtime | 9079是版本号,这两天刚更新的 |
1️⃣ 小程序菜单上增加Devtools按钮
搜索关键字LaunchApplet
通过x64dbg附加调试
WeChatAppEx.exe
进程。
然后搜索WeChatAppEx.exe
模块字符串。
从中删选LaunchApplet
,在所有字符串下断点。
启动任一小程序,会在字符串"LaunchApplet init_config.productId "
处断下来;说明该处是我们要找的地方。
修改配置项json串
找到该断点所在函数入口位置,下断点,然后再次启动新的小程序。
在堆栈中(ESP+0x3B8
处),我们可以看到有一个json串。
将该串拿出来,格式化后,查看到有两个可疑值,修改为true。
步骤1:选中要修改的字符串,使用快捷键Ctrl+E
打开修改界面
步骤2:在修改界面改为我们想要的结果,并点击确定按钮。
步骤3:修改后内存效果如下:
效果
最终效果如下,新增了devTools按钮:
2️⃣ 强制使用浏览器的Devtools
预备知识:定制的DevTools
通过上面的操作,我们可以打开DevTools界面,但是该界面中只有三个标签,这是因为微信当检查的是小程序的时候,启动的是自己定制的DevTools。
关于这块知识,过于庞杂,有兴趣的可以参考文章《Chrome DevTools Frontend 运行原理浅析 https://zhaomenghuan.js.org/blog/chrome-devtools-frontend-analysis-of-principle.html》。
总之,微信是通过不同的地址,打开不同的DevTools的。
分析及实现
如下图,我们打开调试窗口的调试窗口,可以看到其地址为:
devtools://devtools/bundled/devtools_app.html?remoteBase=htt
。
搜索
devtools/
,可以看到下面的结果:
其中的/devtools/wechat_%s.html
有点奇怪,查看相关代码,发现改一个字符串就完成我们的目标了(打开完整版的调试窗口)。
3️⃣ 无法调试排查步骤
一开始使用x64dbg调试时,发现一旦附加微信,立刻闪退。
可以经过下面几种思路进行排查:
删除db目录配置
x64dbg目录下,会将断点、注释等各种信息保存下来,方便下次继续使用,但是随着版本变更,这些配置文件会错乱,导致各种异常,删掉他们,重试。
ScyllaHide插件配置
作为x64dbg常见插件ScyllaHide,小编默认是开启了VMP的反调试的。想来想去,先把它关了吧。
ps: 各种配置切换,最后选择
Disabled
,居然可以了。看来有黑科技呢。
换个版本的x64dbg
这是之前遇到的情况,貌似是新版本的工具修复了一些bug吧。
实在不行,换个调试IDE(如windbg)试试。
过反调试
如果上述都有问题,就只能想办法过反调试了,x64dbg本身提供了很多工具,自己也可以写插件尝试。
🛬 文章小结
打开调试的方法万万千,有兴趣的大佬可以分享一些思路。
整个分析过程其实比较痛苦的,各种试错,搜了各种资料。而且最新版本的跟上一个版本有较大的差别,网上资料全失效了。
下一篇,我们将通过frida自实现启动工具,简化操作。
📖 参考资料
- WeChatOpenDevTools常更新版本: https://github.com/shuaibibobo/WeChatOpenDevTools
- Chrome DevTools Frontend 运行原理浅析 https://zhaomenghuan.js.org/blog/chrome-devtools-frontend-analysis-of-principle.html
ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。