在进行微信小程序前端分析、逆向解构或接口排查时,开发者往往面临调试困难的问题:微信桌面端运行环境(WMPF / WeChatAppEx)默认禁用了常规的审查与调试接口,常规抓包也容易遇到加密协议或内存混淆。

开源项目 WMPFDebugger 提供了一种优雅的解决方案。它能动态 Hook 桌面端小程序的运行进程,将微信私有调试协议转换为标准 Chrome DevTools Protocol (CDP),允许直接在 Chrome 或 Edge 开发者工具中对任意运行中的小程序进行断点调试、控制台打印和源码审查。

一、技术原理浅析

微信桌面端的小程序运行环境依托于 WMPF(WeChat Mini Program Framework)。在内部机制中,小程序并非完全不具备调试能力,而是内置了一套用于远程调试(LanDebug 模式)的私有通道,基于 Protobuf 格式传输并受到严格的进程级过滤。

WMPFDebugger 的核心实现链路如下:

  1. 动态注入与内存 Patch:利用 Frida 注入 WeChatAppEx 运行时进程,Patch 掉 Chrome 调试协议的过滤器及限制开关,强制解除小程序的远程调试限制。

  2. 协议双向桥接:逆向微信开发者工具协议定义,将小程序底层的 Protobuf 私有数据包转换为标准的 Chrome DevTools Protocol (CDP)。

  3. CDP 代理服务:本地开启 WebSocket 服务(默认端口 62000),将 Chromium 浏览器的开发者工具前端直接挂接至小程序渲染进程与逻辑层。

二、环境准备与前置检查

1. 基础环境

  • Node.js:建议 LTS v22 及以上版本

  • Yarn:包管理工具

  • Chromium 内核浏览器:Google Chrome 或 Microsoft Edge

2. 检查 WMPF 运行时版本

WMPFDebugger 对微信内置的 WMPF 版本有明确的内存特征匹配要求:

  1. 启动微信并打开任意小程序。

  2. 打开 Windows 任务管理器,展开并定位到 WeChatAppEx.exe。

  3. 右键选择 打开文件所在的位置。

  4. 查看目录路径结构中位于 RadiumWMPF 与 extracted 之间的数字,该数字即为当前本机的 WMPF 版本号(如 25715、25710 等)。

提示:如果版本不在官方已知列表中,可以在启动命令中添加 --auto-detect 参数,工具将尝试通过动态特征搜索自动适配偏移。

三、部署与使用全流程

1. 获取代码与依赖安装

克隆项目到本地:Bash

git clone https://github.com/evi0s/WMPFDebugger.git
cd WMPFDebugger

安装依赖时需要编译底层 Hook 库 frida。若国内网络下载 GitHub Release 较慢,建议配置终端代理后再安装,避免因预编译包下载超时触发源码回退。owerShell

# 安装依赖
yarn

2. 启动调试代理服务

在项目根目录启动调试脚本:Bash

npx ts-node src/index.ts

如果当前系统的 WMPF 为较新版本或未在列表中,可执行自动探测:Bash

npx ts-node src/index.ts --auto-detect

看到控制台输出代理服务已就绪、监听 127.0.0.1:62000 时,保持终端前台运行。

3. 打开目标小程序

严格遵守执行顺序:必须先启动调试服务,再在微信客户端中点击打开目标小程序。服务捕获到进程创建后会自动注入 Hook 并建立 WebSocket 管道。

4. 浏览器挂载 DevTools

打开 Chrome 或 Edge 浏览器,在地址栏直接粘贴访问:Plaintext

devtools://devtools/bundled/inspector.html?ws=127.0.0.1:62000

浏览器将直接渲染 Chrome 开发者工具界面。此时可在 Console 面板实时执行 JS 表达式,在 Sources 面板定位解包后的页面结构,并下发动态断点排查关键加密函数与请求参数。

四、常见问题与排坑指南

  • 安装时提示 Visual Studio is not installed:通常是 Frida 二进制包下载超时导致的。配置终端代理或通过环境变量 $env:FRIDA_PREBUILT_BINARY 手动指定下载好的 .tar.gz 预编译包即可跳过编译。

  • 页面显示空白或连接中断:检查执行先后顺序,务必确保在服务启动完毕并处于监听状态后,再打开小程序;若中途刷新失败,完全关闭小程序进程并重新进入即可。

文章作者: Z
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 微博客!
前端 工具 其他 前端 微信小程序 抓包 工具
喜欢就支持一下吧