RevokeMsgPatcher使用指南:微信/QQ/TIM防撤回补丁的设置步骤与原理
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
RevokeMsgPatcher 是一款开源的 Windows 消息防撤回补丁工具,可以作用于 PC 版微信、QQ、TIM、QQ轻聊版、QQNT 以及微信 4.0(Weixin)。它的做法很简单:直接修改这些软件安装目录下的关键 DLL 文件,让"撤回"操作失效,被撤回的消息会继续留在聊天窗口里。适合两类人——一是想把重要消息完整保存下来的普通用户,二是想顺带了解二进制补丁是怎么做的手动党。
一、环境要求与防撤回启用步骤
开始之前,先确认两件事:
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 7 及以上,不支持 XP |
| 运行库 | .NET Framework 4.5.2 或更高版本,低于此版本程序可能打开无反应 |
获取工具的两种途径:从项目 Release 页面下载最新版压缩包,或者克隆源码自行编译:
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher最短的启用路径是:
- 完全退出要修补的微信/QQ/TIM(任务栏、后台进程都要关掉)。
- 右键
RevokeMsgPatcher.exe,选择以管理员身份运行,等界面显示补丁信息获取完成。 - 在"选择应用"区域选中目标软件(微信 / QQ / TIM / QQ轻聊版 / QQNT / 微信4.0)。安装版软件的路径通常会自动从注册表读出;绿色版需要点
...按钮手动指定安装目录。 - 在"可选功能"里按需勾选防撤回类别,点击"安装补丁!"按钮。过程中界面可能短暂无响应,属正常现象。
- 修补完成后启动软件,发一条测试消息并撤回,确认内容仍然保留。
需要注意:微信、QQ、TIM 每次大版本更新后都要重新安装一次补丁,这一点在文章后面的排查清单里还会提到。
二、原理速览:逆向定位与二进制补丁
2.1 整体流程
整个过程可以概括为三步:在目标文件里找到"撤回逻辑"对应的机器码 → 改其中几个字节 → 原来的文件先备份再动刀。
以微信为例,工具修改的是安装目录里的WeChatWin.dll;QQ 和 TIM 修改的是Bin\IM.dll。不同软件的目标文件如下:
| 软件 | 被修补的文件 |
|---|---|
| 微信(3.x) | WeChatWin.dll |
| 微信 4.0(Weixin) | Weixin.dll |
| QQ / TIM / QQ轻聊版 | Bin\IM.dll |
| QQNT | versions\{version}\resources\app\wrapper.node |
2.2 指令级改动长什么样
所谓"二进制补丁",就是改动文件里极少量的字节。举两个本工具真实用到的例子:
- 把条件跳转
74(JE,满足条件才跳转)改成无条件跳转EB(JMP),让"执行撤回"这段代码无论什么条件都直接跳过; - 把一段占位区域填充为
90 90(NOP,什么都不做的指令),相当于把撤回处理"抹平"。
你可以这样理解:程序原本会判断"这条消息是否被撤回",补丁把这个判断的结果固定成"否",于是消息就留下来了。
2.3 备份与还原
每个被修改的文件都会先存一份.h.bak备份,界面上的"备份还原"按钮就是用来一键恢复原始文件的。也就是说,想撤销防撤回,不需要重新安装软件,点一次还原即可。
三、防撤回之外的附加能力
3.1 微信多开
界面里的可选功能中带有"多开"类别,安装后同一台电脑可以同时登录多个微信实例,适合工作号与个人号并存、需要多账号管理的用户。
项目里还有一个独立的通用微信多开工具(RevokeMsgPatcher.MultiInstance目录),它不依赖版本特征,通过清理微信判断多开的互斥句柄来实现多开,提供"启动多开"和"清理所有微信互斥句柄"两个手动按钮。有一点要特别提醒:如果已经给微信装过多开补丁,就不要再运行这个工具,两者叠加可能导致启动异常。
3.2 补丁数据是独立维护的
工具的匹配规则存放在RevokeMsgPatcher.Assistant/Data/目录下,按版本号(0.7 到 2.1)分文件夹存放patch.json。每个版本支持哪些客户端、改哪些字节,都写在这些 JSON 里,程序启动时会拉取最新一份。这也是"更新后需重装补丁"的根源:新版客户端的字节特征变了,就需要新的规则。
四、常见问题与排查清单
装完没效果、杀软弹窗、更新后失效,是反馈里最高频的三类问题,对照下面这张表处理:
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| 补丁装上了,撤回仍然生效 | 安装补丁时目标软件还在运行;或软件版本不在支持列表内 | 彻底退出软件后重装补丁;查看界面"支持版本"菜单核对 |
| 软件更新后防撤回失效 | 新版本字节特征变化,旧补丁规则不再匹配 | 先点"备份还原"恢复原文件,等工具发布对应规则后再装 |
| 杀软弹出"修改 DLL"警告 | 工具确实会改写微信/QQ 的安装文件 | 确认为 RevokeMsgPatcher 的操作后放行;如担心可先查备份是否生成 |
| 点"备份还原"提示失败 | 备份文件缺失(如重装过软件) | 备份文件不存在时无法还原,只能重新安装软件 |
| 多开启动失败或进程残留 | 连续启动多个实例速度过快;异常退出残留进程 | 用多开工具的"关闭所有微信进程"清理后重试 |
| 打开程序无反应 | 系统 .NET Framework 低于 4.5.2 | 安装 4.5.2 或更高版本后重试 |
另外两个习惯性的提醒:操作前养成"先确认备份已生成、再开始"的顺序;绿色版用户每次移动安装目录后,路径设置要重新指定。
五、源码结构与延伸阅读
想读源码的话,主程序在RevokeMsgPatcher/目录下,各目录职责如下:
| 目录 | 职责 |
|---|---|
RevokeMsgPatcher/Modifier/ | 各客户端的修补逻辑,如 WechatModifier.cs、QQModifier.cs |
RevokeMsgPatcher/Matcher/ | 特征码匹配算法(Boyer-Moore、模糊匹配) |
RevokeMsgPatcher/Utils/FileUtil.cs等 | 文件、路径等基础工具 |
RevokeMsgPatcher.MultiInstance/ | 独立的通用微信多开工具 |
RevokeMsgPatcher.Assistant/Data/ | 按版本组织的补丁规则数据 |
相关开源项目(见 README.md 致谢部分):微信 4.0 之后的防撤回特征来自 BetterWX,QQNT 早期防撤回依赖 LiteLoaderQQNT 及其反撤回插件,2.1 版本的 QQNT 特征则参考了 NTQQAntiRecall。
学习方向上,这个项目是一个很好的入口:先了解 PE 文件结构与dll的加载方式,再看条件跳转、NOP 这类指令的基本含义,配合十六进制编辑器(例如工具本身基于 FileHexEditor.cs 实现文件读写与备份)动手复现一遍,比纯看文章收获大得多。
结语
RevokeMsgPatcher 用"定位 + 改几个字节 + 留备份"这条最短路径,把 PC 端微信/QQ/TIM 的防撤回变成了几分钟内可完成的操作,配合多开与一键还原,覆盖了从装机到卸载的完整闭环。最后提醒一句:撤回失效后你能保存更多消息,也意味着你对自己留存和转发内容负有同样的责任,请只把它用在合理、合法的用途上。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考