微信QQ消息撤回留得住:RevokeMsgPatcher 防撤回补丁完整安装指南
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
刚发出去的报价单、截图、合同编号,对方手一滑就撤回,屏幕里只剩一句“对方撤回了一条消息”。RevokeMsgPatcher 就是干这个的:一个 Windows 上的小工具,直接对 PC 版微信、QQ、TIM 的官方客户端文件做几处字节级修改,让“撤回替换原文”这一步在你的屏幕上失效,微信还能顺带解锁多开。全文按“先检查、再安装、后验证”的顺序写,新手照做大约 10 分钟能跑通。
动手前:这个补丁能做什么,不能做什么
先把边界说死,避免装完发现和预期不符:
- 能做的:微信(含 4.0 新版微信)、QQ、TIM、QQ 轻聊版的防撤回;微信的多开。四种客户端在同一个界面里切换,每个客户端由独立的修改器负责,代码见 Modifier 模块;
- 不换客户端:跑的还是官方原版,不装任何第三方壳或插件;
- 不碰聊天记录:本地数据库原封不动,改的只是
WeChatWin.dll(微信)或IM.dll(QQ/TIM)这类核心可执行文件里的个别字节; - 对方无感知:消息在服务器端照常撤回,对方界面照旧显示撤回提示,只有你这台电脑还能看到原文;
- 需要联网一次:启动时要从网上拉取最新特征码数据,客户端更新后能不能用,取决于库里有没有对应版本的指纹,数据目录见 patch.json 特征码库。
⚠️ 改写官方客户端文件属于灰色操作。只建议用于留存自己的工作通知、重要聊天记录这类场景,别用来窥探他人隐私,后果自负。
安装前的三项检查
这三项里任何一条不满足,后文都会卡住,所以先花两分钟过一遍。
- 系统环境:Windows 7 及以上(XP 不行),.NET Framework 4.5.2 及以上。打不开程序或点开直接报错,十有八九是缺运行时。
- 客户端彻底退出:不是点窗口关闭,托盘图标也要退出,再到任务管理器确认没有
WeChat.exe/QQ.exe残留。文件被进程占着就写不进去,这是安装失败的第一大原因。 - 确认客户端版本受支持:补丁按版本指纹工作,每个受支持版本的特征码都提前存进数据文件(如 2.1 版补丁数据)。客户端版本过新、库里没收录时,界面上的功能项会显示为红色且不可勾选,此时只能升级补丁或等数据跟进。
上图为作者当年手工定位撤回函数时的截图:在调试器里按字符串
revokemsg搜索。现在这一步已经被自动化,你不需要自己搜。
安装步骤:从启动到补丁落地
先解压好下载包(或从源码仓库拉取,见文末)。
第 1 步:以管理员身份启动补丁程序。右键主程序,选“以管理员身份运行”。改的是客户端核心文件,普通权限一定写不进去。
- 预期结果:主界面弹出,右下角开始“获取最新补丁信息”,几秒到十几秒后提示成功,界面显示可勾选的功能项。
- 失败预案:右下角长时间停留在获取中 → 网络问题,特征码库是联网现拉的,换网络或稍后重试;功能项为空 → 见下文排查表。
第 2 步:选择应用与安装路径。界面上“选择应用”一排单选按钮:微信、新版微信、QQ、TIM、QQ 轻聊版。安装版客户端会走注册表自动带出路径;绿色版手动点“...”浏览到wechat.exe/QQ.exe所在目录。
- 预期结果:路径栏填入目录后,“当前版本”一栏显示具体版本号,例如
3.3.0.115(支持特征防撤回)。 - 失败预案:弹窗“请选择正确的安装路径!” → 路径选错,绿色版要选到可执行文件所在层;版本号为红色 → 该版本不在特征码库覆盖范围。
第 3 步:勾选功能,点击“安装补丁”。微信可以勾“防撤回”+“多开”;QQ、TIM 只有防撤回。个别版本会出现“防撤回(老)”和“防撤回带提示(新)”二选一的情况,按弹窗说明选一个即可。
- 预期结果:界面短暂无响应后进度走完,出现安装成功提示。
- 失败预案:弹窗提示文件被占用 → 回到三项检查,把残留进程杀掉重试;杀毒软件报警说
WeChatWin.dll、IM.dll被修改 → 这是补丁改写核心文件触发的误报,不是中毒,放行即可;若已被隔离,先在隔离区恢复文件,再把客户端目录加入杀软白名单。
第 4 步:关闭补丁程序,正常打开客户端。装完不用重启电脑。
30 秒验证 + 常见故障对照
验证不用半分钟:
- 防撤回:给“文件传输助手”或用自己的另一台设备发一条消息,撤回。原文还留在窗口里,即生效;
- 多开:再启动一次微信,两个窗口同时挂着,即生效。
没生效对照下面这张表:
| 症状 | 原因 | 处理 |
|---|---|---|
| 提示文件被占用 | 客户端进程未退干净(含托盘残留) | 任务管理器结束对应进程再重试 |
| 杀软报警或删了文件 | 核心 DLL 被改写触发误报 | 放行或把客户端目录加入白名单 |
| 客户端更新后失效 | 更新覆盖了已打补丁的文件 | 重新以管理员身份运行再打一次,并关闭客户端自动更新 |
| 打开程序无反应或报错 | 缺 .NET Framework 4.5.2 以上运行时 | 安装运行时后重新打开 |
| 版本显示红色、无勾选项 | 该版本未被特征码库收录 | 等补丁数据跟进,或升级客户端到受支持版本 |
原理浅析:给撤回流程的“盖章”环节做了一次旁路
不碰汇编细节,用一个比喻说清:客户端收到撤回指令后,会走一小段流程——核对消息 → 判断“这条确实被撤了” → 盖上一枚“此条已撤回”的印章替换原文。补丁改的就是这个判断:把“条件成立才跳转”的分支指令,换成“无条件跳过盖章”的写法。判断被旁路,盖章环节永远执行不到,原文就留在窗口里。
落到执行层面,流程全部自动化:程序先计算文件 SHA1 与库里记录的指纹比对,确认客户端版本没被动过;然后用特征码在 DLL 里定位要改的那几个字节(BoyerMooreMatcher 负责快速定位);改之前把原文件复制成.h.bak备份,改完再验一次改后指纹。哪一步不对都能从备份还原,FileHexEditor 就是干这个的。
另外,微信多开用的是另一套机制:微信靠一个互斥句柄标记“本机能开几个实例”,新实例看到标记就拒绝启动。项目里附带了一个独立的微信多开工具,清理互斥句柄即可多开,单独使用也可以。注意:如果已经打过多开补丁,就不要再用这个工具,两者会互相干扰。
写在最后
再强调一次使用边界:它只影响你自己这台电脑的显示,不伪造消息、不影响服务器数据,适合用来留存工作通知和重要记录;拿它窥探他人聊天属于越界,请勿模仿。想逐行看懂补丁怎么打的,直接看源码:
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher修改器、特征码匹配器、补丁数据都在这个仓库里,入口就是 RevokeMsgPatcher 目录。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考