RevokeMsgPatcher微信多开与防撤回补丁源码部署教程与二开分析

综合源码2026-08-22139 阅读
1,404 字 · 大约 5 分钟

一、项目概述

RevokeMsgPatcher 是一个开源的 Windows 桌面工具,核心功能两个:防撤回(对方撤回的消息仍然可见)和微信多开(同时运行多个微信实例)。支持微信(3.x/4.x)、QQ、TIM、QQ 轻聊版等多个应用,通过修改目标程序的 DLL 文件中的特定字节码实现功能注入,不注入进程、不加载外部模块。

本仓库在原作者 huiyadanli 的基础上进行了二次开发,持续跟进微信新版本适配,最新已支持微信 4.1.12.26


二、界面效果展示

01 主程序界面

主程序界面 -- 支持微信/QQ/TIM,可勾选多开与防撤回


02 多开工具界面

微信多开小工具 -- 点击即可启动多个微信实例


03 补丁已安装状态

补丁安装成功状态 -- 显示"已安装"并可一键还原


三、技术架构

工具由 4 个子项目组成,共享一个 Visual Studio 解决方案。

RevokeMsgPatcher.sln
  ├─ RevokeMsgPatcher/           主程序:补丁安装器(防撤回 + 静态多开)
  ├─ RevokeMsgPatcher.MultiInstance/  微信多开小工具(运行时互斥量关闭)
  ├─ RevokeMsgPatcher.Assistant/      辅助工具(补丁数据维护)
  └─ RevokeMsgPatcher.Launcher/       启动器

组件

技术

说明

语言与框架

C# / .NET Framework 4.5.2

WinForms 桌面应用

补丁原理

Boyer-Moore 特征码搜索

在 DLL 中定位目标字节序列并替换

多开原理

Win32 API 关闭互斥量

NtQuerySystemInformation + DuplicateHandle 释放进程锁

静态多开

DLL 字节码修改

直接改写 Weixin.dll 中互斥量创建和窗口复用的分支逻辑

构建工具

Visual Studio 2017+

MSBuild 编译,Release 模式输出

依赖

Newtonsoft.Json 13.0.3

序列化补丁规则数据


四、补丁核心原理

防撤回:微信收到撤回指令后会调用一段处理函数删除本地消息,补丁在 WeChatWin.dll(3.x)或 Weixin.dll(4.x)中找到该函数入口的特征字节码,将关键跳转指令替换为 NOP 或反转条件跳转,使撤回逻辑不执行。

多开(两种方式互补)

  • 运行时多开MultiInstance 工具枚举微信进程持有的所有系统句柄,找到名为 _WeChat_App_Instance_Identity_Mutex_Name 的互斥量并关闭,然后以无参数方式启动新实例绕过单例检测。

  • 静态多开:直接修改 Weixin.dll 中创建互斥量和 --scene=startmenu 窗口复用分支的字节码,安装一次后无需辅助工具即可多开。

版本适配机制:所有补丁规则以 JSON 格式存储在 PatchJson 资源中,每条规则绑定具体版本号和 DLL 文件名,包含搜索特征(Search)和替换值(Replace)。新版微信发布后,只需用 IDA/x64dbg 找到新的特征偏移,在 JsonData.cs 中添加规则即可。


五、环境要求与构建

  • 运行环境: Windows 7 及以上,.NET Framework 4.5.2(Win10/11 内置)

  • 构建环境: Visual Studio 2017 或更高版本

  • 硬件要求: 无特殊要求,普通 PC 即可

构建步骤:

  1. 用 Visual Studio 打开 RevokeMsgPatcher.sln

  2. 切换到 Release 配置

  3. 生成解决方案(Ctrl+Shift+B)

  4. 输出在各子项目的 bin\Release\ 目录下

已编译版本已随仓库提交在 RevokeMsgPatcher.v2.1/ 目录,可直接运行。运行主程序需要管理员权限(修改系统目录下的 DLL 文件)。


六、二次开发评估

组件

源码情况

二开难度

主程序(补丁安装器)

C# 完整源码,约 64 个文件

多开小工具

C# 完整源码

补丁规则数据

JSON 格式,结构清晰

低,纯数据维护

辅助/启动器

C# 完整源码

二开重点在版本适配:微信每次更新都可能改变 DLL 中的字节码偏移,需要用逆向工具(IDA Pro / x64dbg)在新版 DLL 中重新定位特征码,更新 JsonData.cs 中的规则。本仓库的修改日志表明这项工作已形成标准流程,每个新版本的适配通常在数小时内完成。

源码完全可读,命名规范,核心算法(Boyer-Moore 搜索、模糊匹配)实现清晰。GPLv3 许可证,二开需遵循开源协议。


七、核心功能

  • 防撤回: 微信 3.x / 4.x、QQ、TIM、QQ 轻聊版的消息防撤回

  • 微信多开: 运行时互斥量关闭 + 静态 DLL 补丁,两种方式互补

  • 自动定位: 从注册表和默认路径自动查找应用安装位置

  • 版本检测: 自动识别当前版本,匹配对应补丁规则

  • 备份还原: 修改前自动备份原始 DLL,支持一键还原

  • 在线更新: 启动时从远程拉取最新补丁数据,无需重新下载工具

  • 管理员提权: 非管理员启动时自动请求 UAC 提权


八、注意事项

  • 每次微信大版本更新后需等待补丁规则适配,期间工具可能提示"不支持当前版本"

  • 修改系统目录下的 DLL 可能触发杀毒软件误报,需添加白名单

  • 微信 4.x 的进程名从 WeChat.exe 改为 Weixin.exe,DLL 从 WeChatWin.dll 改为 Weixin.dll

  • 静态多开补丁安装后需要重启微信才生效

  • 使用前必须先关闭微信进程,否则 DLL 被占用无法修改


九、总结

一个设计精良的 Windows 二进制热补丁工具,用 Boyer-Moore 特征码匹配实现非侵入式 DLL 修改,核心代码量不大但技术含量高。源码完全开放、结构清晰,二开门槛低,主要工作量在逆向分析新版本的特征偏移。适合对 Windows 逆向、二进制补丁、进程句柄操作感兴趣的开发者学习参考,也适合需要持续跟进微信版本的维护团队直接使用。

下载地址

免费资源