【微信】【Windows端】开启2024最新版微信内置浏览器Devtools调试窗口

【微信】【Windows端】开启2024最新版微信内置浏览器Devtools调试窗口

▒ 目录 ▒

🛫 导读需求开发环境

1️⃣ 预备知识浏览器框架进程关系

2️⃣ 逆向分析关键字`xweb-enable-inspect`x64dbg分析

3️⃣ 验证菜单按钮方式快捷键F12方式同时打开多个Devtools调试窗口

🛬 文章小结📖 参考资料

🛫 导读

需求

微信浏览器分析,上篇讲的《【微信】实战Adnroid上的小程序调试https://blog.csdn.net/kinghzking/article/details/136509188》,虽然能够正常使用,但是保不准啥时候腾讯关闭了这个通道就失效了。 所以分析下windows上如何实现浏览器调试窗口Devtools,最终效果如下图所示:

开发环境

版本号描述文章日期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️⃣ 预备知识

针对微信,使用了很多技术,这里简单的说下。

浏览器框架

electron 腾讯最近几年大量产品用的都是electron,包含QQ等,至于为啥用这个就不深究了。 对于微信,electron魔改成了WeChatAppEx.exe,该模块有如下特点:

目前最新版本是9079。Chrome内核使用的116.0。针对js的扩展,直接编译到了exe中,没有加载额外.node模块。没有所谓的asar文件,应该是魔改了这块逻辑。修改了Devtools,有两套:wechat_web和wechat_app!!!

cef(旧版本) 此方法适用于3.2.1版本微信,如不想回退版本,就不用往下看了。 这个网上有很多教程,就不细说了,有兴趣的朋友,直接参考文章《如何在微信内置浏览器中开启开发者模式(f12) https://blog.csdn.net/qq_45863248/article/details/127688137》。

进程关系

微信有很多进程,本篇只讨论WeChat.exe和WeChatAppEx.exe。

版本号描述目录WeChat.exe目录3.9.8.25关键字xweb-enable-inspect,开启浏览器调试按钮D:\Program Files (x86)\Tencent\WeChat\[3.9.8.25]WeChatAppEx.exe路径9079控制小程序的调试(单独一篇文章写这个)%APPDATA%\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\9079\extracted\runtime

2️⃣ 逆向分析

关键字xweb-enable-inspect

这个是搜了很多文章,一个个试出来的,就这个好用。

x64dbg分析

如下图123步骤,定位wechatwin.dll模块(通过CE定位到该模块的)。

按照下图所示,搜索当前模块字符串

如下图,在《引用》标签页下,在搜索框中输入xweb-enable-inspect,删选出结果(只有一项),双击该项,跳转到《CPU》标签页

在代码1下断点,调试方式重新启动微信,无法触发该处断点,说明该处不是每次都触发的。 那么我们向上找最近的跳转代码(代码2),下断点,调试方式重新启动微信,可以正常断下来,说明这个是个关键地方。 尝试将je改为jne,继续执行,启动微信后,发现的确可以打开调试界面了!!!

ps: 最后,再发一个IDA分析该代码的截图:

3️⃣ 验证

有如下两种方式打开调试界面

菜单按钮方式

在微信中,任意地方打开一个网页(图示为订阅号页面中点开的); 弹出窗口右上角点击三个点的菜单按钮; 最后点击检查菜单,即可打开调试窗口(导读中的那个Devtools图片)。

快捷键F12方式

这个就不多说了,直接按F12打开就行了。

同时打开多个Devtools调试窗口

在上面的图片中,显示了一个窗口,该窗口有两个页面。当打开任意一个页面的调试窗口后,我们无法打开另一个。

我们只需要将页面拖拽出来,变成多个窗口,然后打开调试窗口就可以了。(目测,这是微信的一个bug)。如下图所示:

🛬 文章小结

本篇讲解修改内置浏览器的Devtools调试窗口,不包含小程序的Devtools调试窗口显示。微信魔改了Electron,可以参考Electron源码,直接注入打开调试窗口。微信经常更新,注意文中的版本问题。不必每次都调试修改调整逻辑,直接改二进制文件即可(后期frida控制内存修改更安全吧),如下图,改一个字节就可以了。

📖 参考资料

WeChatOpenDevTools常更新版本: https://github.com/shuaibibobo/WeChatOpenDevToolsWeChatOpenDevTools某版本: https://github.com/x0tools/WeChatOpenDevTools微信视频号视频加密逆向 https://bbs.kanxue.com/thread-279740.htm修改6字节打开微信内置浏览器的F12 https://blog.seeflower.dev/archives/292/

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

更多尼泊尔内容

中国书法家协会会员李梅英燕书鉴赏
mobile28365-365

中国书法家协会会员李梅英燕书鉴赏

🗓️ 09-21 👁️ 644
剑网三:25人普通一之窟萌新教学
365提款验证

剑网三:25人普通一之窟萌新教学

🗓️ 08-09 👁️ 3634
为何日本现在不能建航母?二战之后,限制其军事力量的发展
龙珠超宇宙全剧情流程攻略
365bet娱乐在线

龙珠超宇宙全剧情流程攻略

🗓️ 07-08 👁️ 7852
孔雀开屏
mobile28365-365

孔雀开屏

🗓️ 09-24 👁️ 8522
春季的日本
365bet娱乐在线

春季的日本

🗓️ 09-08 👁️ 3148
布隆哪个皮肤好看?推荐哪款?
365bet娱乐在线

布隆哪个皮肤好看?推荐哪款?

🗓️ 09-03 👁️ 6662
字体灵感
365提款验证

字体灵感

🗓️ 08-15 👁️ 1319
澳大利亚往年世界杯战绩 澳大利亚世界杯历史成绩
365bet娱乐在线

澳大利亚往年世界杯战绩 澳大利亚世界杯历史成绩

🗓️ 09-01 👁️ 2536