▒ 目录 ▒

 导读系列文章开发环境

1️⃣ 小程序菜单上增加Devtools按钮搜索关键字LaunchApplet修改配置项json串效果

2️⃣ 强制使用浏览器的Devtools预备知识:定制的DevTools分析及实现

3️⃣ 无法调试排查步骤删除db目录配置ScyllaHide插件配置换个版本的x64dbg过反调试

 文章小结 参考资料

 导读

系列文章

【微信】【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 - 22H222621.2715WeChat.exe目录D:\Program Files (x86)\Tencent\WeChat小编使用的是[3.9.8.25]WeChatAppEx.exe路径%APPDATA%\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\9079\extracted\runtime9079是版本号,这两天刚更新的

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/WeChatOpenDevToolsChrome DevTools Frontend 运行原理浅析 https://zhaomenghuan.js.org/blog/chrome-devtools-frontend-analysis-of-principle.html

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: