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

🛫 导读

需求

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

开发环境

版本号描述
文章日期2024-03-08
操作系统Win11 - 22H222621.2715
WeChat.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_webwechat_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控制内存修改更安全吧),如下图,改一个字节就可以了。
    在这里插入图片描述

📖 参考资料

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

  • 38
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2020.06.09 更新说明 A 新增 终面板 A 新增 查看并管理开发者工具相关进程 A 新增 云开发静态资源托管 详情 A 新增 小程序设置页面中增加订阅消息开关 A 新增 小程序强制更新调试支持 详情 A 新增 小程序/小游戏 收藏事件调试 详情 A 新增 通用设置-项目关闭时,控制项目关闭时是否直接打开项目列表窗口 A 新增 通用设置-快速打开文件,控制模拟器区域底部状态栏点击页面路径时打开的文件类型 A 新增 搜索回调调试插件 A 新增 小游戏脚本录制插件 A 新增 模拟器-模拟操作-事件模拟-内存警告 A 新增 支持音视频合成调试 详情 A 新增 代码上传后可以下载对应的 sourcemap 文件 F 修复 编辑器 WXML 文件格式化快捷键失效的问题 F 修复 调试器位置顺序无法拖动排序的问题 F 修复 打开快捷键设置后,编辑器 ctrl/cmd + f 快捷键无法触发文件内搜索的问题 反馈详情 F 修复 cli 命令行当项目路径有中文的情况下无法正常启动的问题 F 修复 新建代码片段时生成多个 sitemap.json 的问题 反馈详情 F 修复 mac 版无法读取系统设置的 PATH 环境变量的问题 F 修复 云函数本地调试没有日志的问题 反馈详情 F 修复 API 代码自动补全时按字母序排序不友好的问题 反馈详情 F 修复 版本更新通知时,如未选择更新,后续手动检查更新时一直提示正在下载的问题 F 修复 win 版通知中心顶部操作按钮被遮挡的问题 反馈详情 F 修复 小游戏 video 缺少 onVideoProgress 事件回调的问题 F 修复 1.03.2005140 终止模拟器导致工具奔溃的问题 反馈详情 F 修复 1.03.2005140 多帐号调试窗口编译会导致主项目窗口模拟器崩溃的问题 反馈详情 F 修复 1.03.2005140 激励视频广告自动显示并无法关闭的问题 反馈详情 F 修复 独立分包代码被执行两遍的问题 反馈详情 F 修复 菜单栏新建或导入项目可能没反应的问题 F 修复 模拟器在 Tabbar 设置为 top 时样式错乱的问题 反馈详情 2020.05.12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值