支持微信4.0的小程序注入调试工具(WMPFDebugger)

WMPFDebugger 安装使用教程 (Windows 10)

一、工具简介

WMPFDebugger 是一个用于调试微信小程序的调试工具,利用微信开发者工具的远程调试功能,通过注入 Frida 脚本来突破小程序运行时的限制,使其支持完整的 Chrome Debug Protocol (CDP),从而可以直接使用 Chrome/Edge 等浏览器的开发者工具进行调试。

项目地址: https://gitcode.com/gh_mirrors/wm/WMPFDebugger

二、环境要求

2.1 必需软件

软件 版本要求 说明
Node.js >= v22 LTS 运行环境
Python 任意版本 部分依赖可能需要
Git 最新版 克隆项目

2.2 安装 Node.js (推荐使用 nvm 管理)

powershell 复制代码
# 安装 nvm-windows
# 下载地址: https://github.com/coreybutler/nvm-windows/releases

# 安装 Node.js LTS 版本
nvm install 22

# 切换到 Node.js 22
nvm use 22

# 验证安装
node -v
npm -v

三、安装步骤

3.1 克隆项目

powershell 复制代码
# 从 GitCode 克隆
git clone https://gitcode.com/gh_mirrors/wm/WMPFDebugger.git

# 进入项目目录
cd WMPFDebugger

3.2 安装依赖

powershell 复制代码
# 使用 npm 安装
npm install

# 或使用 yarn
yarn install

3.3 运行项目

powershell 复制代码
npm run start

四、常见问题及解决方案

4.1 ES Module 导入错误

错误信息:

复制代码
SyntaxError: Cannot use import statement outside a module

原因: 项目使用 ES Module 语法,但 Node.js 默认使用 CommonJS。

解决方案:

项目已配置 tsx 作为运行器,会自动处理 TypeScript 和 ES Module。如果遇到问题,可以检查 package.json:

json 复制代码
{
  "scripts": {
    "start": "tsx src/index.ts"
  },
  "devDependencies": {
    "tsx": "^4.19.0"
  }
}

4.2 第三方模块 require 错误

错误信息:

复制代码
Error [ERR_REQUIRE_ESM]: require() of ES Module ... not supported

原因 : 项目中 src/third-party/ 目录下的文件是 CommonJS 模块,在 ES Module 环境下需要特殊处理。

解决方案:

这些文件已重命名为 .cjs 扩展名,代码中使用 createRequire 来加载:

typescript 复制代码
import { createRequire } from "node:module";
const require = createRequire(import.meta.url);

const codex = require("./third-party/RemoteDebugCodex.cjs");
const messageProto = require("./third-party/WARemoteDebugProtobuf.cjs");

4.3 Frida 模块未安装

错误信息:

复制代码
Cannot find module 'frida'

解决方案:

powershell 复制代码
npm install frida

如果网络问题导致安装失败,可以切换 npm 源:

powershell 复制代码
# 切换到官方源
npm config set registry https://registry.npmjs.org/

# 安装
npm install frida

# 安装完成后可切换回国内镜像
npm config set registry https://registry.npmmirror.com/

4.4 frida 目录缺失

错误信息:

复制代码
Error: [frida] hook script not found

原因 : frida/ 目录未从 Git 检出。

解决方案:

powershell 复制代码
# 恢复 frida 目录
git checkout HEAD -- frida

4.5 端口绑定失败 (EINVAL)

错误信息:

复制代码
Error: listen EINVAL: invalid argument 0.0.0.0:9421

可能原因:

  1. Windows NAT 服务异常
  2. VPN/代理软件干扰
  3. 防火墙/杀毒软件阻止
  4. 端口被系统保留

解决方案:

powershell 复制代码
# 方案1: 重启 Windows NAT 服务 (管理员权限)
net stop winnat
net start winnat

# 方案2: 检查端口排除范围
netsh interface ipv4 show excludedportrange protocol=tcp

# 方案3: 临时禁用 VPN/防火墙后重试

# 方案4: 使用自定义端口运行
npx ts-node src/index.ts --debug-port 8080 --cdp-port 9222

4.6 端口权限不足 (EACCES)

错误信息:

复制代码
Error: listen EACCES: permission denied 0.0.0.0:62000

解决方案:

powershell 复制代码
# 以管理员身份运行 PowerShell
# 或更换为非保留端口 (如 9222)

五、使用方法

5.1 启动调试服务

powershell 复制代码
npm run start

成功启动后会显示:

复制代码
[server] debug server running on ws://localhost:9421
[server] debug server waiting for miniapp to connect...
[server] proxy server running on ws://localhost:9222
[server] link: devtools://devtools/bundled/inspector.html?ws=127.0.0.1:9222

5.2 启动小程序

  1. 打开微信 PC 版
  2. 启动任意需要调试的小程序
  3. 确保小程序版本与 frida/config/ 中的配置文件匹配

5.3 打开开发者工具

在 Chrome 或 Edge 浏览器中访问:

复制代码
devtools://devtools/bundled/inspector.html?ws=127.0.0.1:9222

5.4 命令行参数

powershell 复制代码
npx ts-node src/index.ts --help

# 可用参数:
#   --debug-port <port>  调试服务器端口 (默认: 9421)
#   --cdp-port <port>    CDP 代理服务器端口 (默认: 9222)
#   --debug-main         输出主进程调试信息
#   --debug-frida        输出 Frida 客户端信息

六、支持的微信版本

版本号 状态
19201 ✅ 支持 (最新)
19027 ✅ 支持
18955 ✅ 支持
18891 ✅ 支持
18787 ✅ 支持
18151 ✅ 支持

查看完整支持列表请参考项目 README.md

七、查看当前 WMPF 版本

  1. 打开任务管理器
  2. 找到 WeChatAppEx.exe 进程
  3. 右键 → 打开文件位置
  4. 查看路径中 RadiumWMPF 后面的数字

八、注意事项

  1. 启动顺序: 先启动调试服务器,再打开小程序,最后打开 DevTools
  2. 版本匹配 : 小程序版本必须在 frida/config/ 中有对应配置
  3. 网络环境: 确保没有 VPN 或代理干扰本地端口绑定
  4. 权限问题: 如遇权限问题,尝试以管理员身份运行

九、故障排除

如果遇到问题,按以下顺序排查:

  1. 检查 Node.js 版本 (node -v 应为 v22+)
  2. 检查依赖是否完整 (npm install)
  3. 检查 frida/ 目录是否存在
  4. 检查端口是否被占用或保留
  5. 尝试以管理员权限运行
  6. 查看项目 Issues: https://github.com/evi0s/WMPFDebugger/issues

十、安装效果

本教程基于 Windows 10 环境,Node.js v22 测试编写

相关推荐
2501_915909062 小时前
React Native 上架 App Store:项目运行与审核构建的流程
android·ios·小程序·https·uni-app·iphone·webview
李庆政3702 小时前
uniapp+unicloud打包部署微信小程序
微信小程序·小程序·uni-app
Swift社区2 小时前
鸿蒙游戏和小程序游戏的本质区别
游戏·小程序·harmonyos
取码网3 小时前
最新电子商务购物商城系统源码 三端_H5+微信+安卓
微信
2501_9160074711 小时前
网站爬虫原理,基于浏览器点击行为还原可接口请求
前端·javascript·爬虫·ios·小程序·uni-app·iphone
一匹电信狗15 小时前
【Linux我做主】进程程序替换和exec函数族
linux·运维·服务器·c++·ubuntu·小程序·开源
陈思杰系统思考Jason1 天前
系统思考:短视决策与长期风险
百度·微信·微信公众平台·新浪微博·微信开放平台
woshinon1 天前
【Uniapp(HBuilderX)针对微信小程序和H5平台实现差异化配置(自定义发行)】
微信小程序·小程序·uni-app
hashiqimiya1 天前
微信小程序---textarea组件布局
微信小程序·小程序