模块化微信 Hook 插件框架,基于 VEH + 反射注入。
⚠️ 免责声明:本项目仅供学习研究,严禁用于非法用途。详见 DISCLAIMER
- 插件化架构 — 每个功能独立模块,声明式路由/Hook/偏移表
- 多版本兼容 —
WXHELPER_OFFSET_TABLE宏管理版本偏移,新增版本只加一行 - 双 Hook 引擎 — VEH INT3(低频/一次性)+ Inline(高频/持续)
- 多通信方式 — HTTP API + WebSocket + Named Pipe
- 数据存储 —
PluginDataStore跨插件共享数据,/api/data统一导出 - 事件推送 —
DispatchCenter实时推送 Hook 事件到 WS/Pipe 客户端
# 需要 Visual Studio 2022 + CMake
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release输出:build/output/Release/wxhelper.dll + injector.exe
injector.exe <微信PID>import requests
BASE = "http://127.0.0.1:19088"
print(requests.post(f"{BASE}/api/contacts").json())wxhelper_modular/
├── app/
│ ├── core/ # 核心框架
│ │ ├── core/ # Hook引擎、DLL入口、单例
│ │ ├── infra/ # HTTP/Pipe服务器、路由分发、配置
│ │ ├── plugin/ # 插件接口、插件管理器、数据存储
│ │ └── utils/ # 工具函数、版本偏移、微信内存读取
│ └── modules/ # 插件模块(在这里开发)
│ ├── base/ # 基础模块(版本/状态查询)
│ ├── contacts/ # 联系人模块
│ ├── profile_example/ # 个人信息示例
│ └── example/ # 最小示例
├── 3rdparty/ # 第三方库(mongoose/json/zstd)
├── injector/ # 注入器
├── PLUGIN_DEV.md # 插件开发完整指南
├── DISCLAIMER # 免责声明
└── LICENSE # MIT
详见 PLUGIN_DEV.md — 从零创建插件的完整流程。
- 创建
app/modules/my_module/my_module.h和.cc - 定义偏移表、路由表、Hook 表
- 实现
OnInit/OnDestroy/ Handler - 末尾
WXHELPER_REGISTER_PLUGIN(MyModule) - 重新 cmake 配置并编译
// 版本偏移表
WXHELPER_OFFSET_TABLE(My, MyOffsets,
{"4.1.9.35", {.func_a = 0x123}},
{"4.1.10.27", {.func_a = 0x456}},
)
// 路由表
WXHELPER_ROUTE_TABLE(
{"/api/my", HandleMy},
)
// Hook 表
WXHELPER_HOOK_TABLE(MyOffsets,
{"hook_a", &MyOffsets::func_a, 0, HookAHandler, hook::HookMethod::kVehInt3, true},
)
// 插件注册(.cc 末尾)
WXHELPER_REGISTER_PLUGIN(MyModule)| 路由 | 说明 |
|---|---|
POST /api/contacts |
获取所有联系人 |
POST /api/contacts/search |
搜索联系人(keyword) |
POST /api/profile_example |
个人信息(直接读取+Hook) |
POST /api/hook/toggle |
手动安装/卸载 Hook |
POST /api/data |
导出所有插件数据 |
POST /api/status |
框架状态 |