微信防撤回工具 RevokeMsgPatcher 完整实测:3 分钟装上,撤回的消息再也逃不掉
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
晚上十点半,工作群弹出一条消息,我端起水杯的工夫,它就变成灰扑扑的一行字:"某某撤回了一条消息"。那天要命的不是"没看到",而是"看到了一半"——标题里那半句话让我惦记了整整一夜。后来我找到了 RevokeMsgPatcher,一个开源的微信/QQ/TIM 防撤回工具,装上之后,被撤回的内容会原样留在聊天框里。这篇是我用了一段时间的真实笔记,它是什么、怎么装、装完怎么验证、有哪些坑,一次讲清楚,看完你大概花 3 分钟就能自己上手。
第一个问题:撤回的消息,真的彻底消失了吗
先说结论:消息撤回之后,内容是彻底从对方聊天框里删掉的,你翻聊天记录、搜关键词都找不到。这不是你没操作对,是程序在收到"撤回"指令的那一刻,就执行了删除动作。
但有一点很关键:删除只是"指令"被执行了,不代表这个动作不能被拦截。RevokeMsgPatcher 干的事,就是让"撤回"这个指令彻底失效。
这里用一个"收发室"的故事解释给你听。微信每天收发海量消息,就像一间收发室,每条消息是一个包裹,撤回就是一张"销毁工单"——对方点撤回,工单送到收发室,工作人员照单把包裹销毁。RevokeMsgPatcher 做的事情,是在收发室装了一盏永远亮红灯的信号灯:销毁工单一到,灯就亮着,工单原地卡住过不去,包裹自然原封不动地留在架子上。
这盏"灯"在代码层面其实就是一个跳转指令。微信的撤回逻辑里有一个条件判断:条件成立就跳去执行"删除",不成立就什么都不做。补丁把这个条件跳转(je)改成无条件跳转(jmp),让"删除"分支永远走不到,于是撤回对你就只剩一个提示,内容纹丝不动。作者当年在调试器里定位特征字符串,比如下面这张图里的revokemsg("撤回消息"的英文缩写),顺着它就能找到关键代码:
找到之后再把这个跳转指令改掉:
看到这里你可能担心:这么麻烦的逆向操作,我哪会?放心,整套过程早被做成了自动化。程序启动时会先读取内置的补丁数据(存在RevokeMsgPatcher.Assistant/Data/目录下),里面有微信、微信 4.0、QQ、TIM、QQNT 等多个应用的版本特征和修改位置;运行时用 Boyer-Moore 字符串匹配算法在 DLL 里快速定位特征码,找到就精准修改。你全程只需要点几下鼠标。
第二个问题:改微信的核心文件,安全吗
这是我装之前最纠结的一关。毕竟要动的是WeChatWin.dll(微信)、IM.dll(QQ/TIM)这种核心文件,万一改错了,微信打不开怎么办?
我看了源码后踏实了很多,它有四道保险:
- 改前校验:修改前先算目标文件的 SHA1 哈希,和补丁数据里记录的"原始哈希"比对,对得上才动手,防止在错误版本上瞎改。
- 自动备份:打补丁前会自动生成一份
.h.bak备份文件,原版文件留底。 - 改后校验:修改完成后再验一遍哈希,确认写入位置没出错。
- 一键还原:界面上有"备份还原"按钮,任何一次操作出问题,点一下就能把官方原版文件恢复回去。
另外,这个项目是 GPLv3 开源的,全部源码都公开可查,有没有夹带私货,有心人可以自己核对。当然,我不替它打包票说"绝对安全"——它本质上还是修改官方程序的灰色操作,你心里得有数,往下看我会把风险讲透。
第三个问题:微信防撤回一键安装,到底怎么操作
全程有图形界面,我第一次走完整套流程大概就三分钟。每一步为什么这么做,我写给你:
第 0 步:确认环境。系统要 Windows 7 SP1 及以上(不支持 XP),.NET Framework 要在 4.5.2 以上(Win10 一般自带)。环境不满足的话,程序可能点了没反应或者直接报错,先看报错信息再动手。
第 1 步:彻底退出微信。这一步最容易漏!注意不是关窗口,是把右下角托盘里的微信图标也右键退出。补丁要改写微信的核心 DLL,文件被进程占着就写不进去。我第一次就是没退干净,卡在"文件被占用",白折腾十分钟。
第 2 步:右键"以管理员身份运行"程序。没有管理员权限,改WeChatWin.dll这种系统级文件会被拒绝。不用纠结,照做。
第 3 步:选择软件类型和安装路径。安装版微信程序会自动从注册表识别路径;绿色版、便携版就要手动指定wechat.exe所在目录。
第 4 步:勾选功能。微信会同时出现"防撤回"和"多开"两个选项,我两个都勾了。这里提醒一句:如果你的微信版本较新,可能会出现"防撤回(老)"和"防撤回带提示(新)"二选一的情况,按界面提示选一个即可(两者的差异我放在最后一节讲)。
第 5 步:点"安装补丁",等进度条走完。重点来了——进度条走完的瞬间,杀毒软件几乎必然弹窗报警。这不是中毒,是因为补丁在改写微信的核心 DLL,杀软不认识这种"改动"就会拦。我当时也慌了一瞬,确认文件是从官方仓库下载的后选择"允许",一切正常:
补丁打完,重新启动微信,就完事了。
第四个问题:怎么确定防撤回真的生效了
光装上不验证,我心里不踏实。这里给你一个 5 分钟的自测方法:
- 准备另一台设备,或者注册一个不常用的小号;
- 给你自己发一条消息,内容越有辨识度越好;
- 当着你的面,在对方那头点"撤回";
- 回到你的聊天框:如果那条消息还在、内容一字不少,还能在"聊天记录"里搜到,恭喜,生效了。
我还特意让朋友看了眼他那边——屏幕正常显示"你撤回了一条消息",完全没破绽。只有你自己这边保住了内容,对方毫无察觉,不会有人尴尬,也不会暴露你在用工具。这套自测我建议每个装完的人都做一遍。
顺手解锁的彩蛋:微信多开
本来我是冲防撤回去的,用着用着发现多开才是真香:工作号、客户群、私人号分开登录,一台电脑不用来回切,效率直接上一个台阶。
多开的原理也不复杂。微信启动时会检查"是不是已经有一个自己在运行",判断依据是一个叫**互斥体(Mutex)**的标记——就像演唱会只有一个检票口,同一张票根验过就作废。作者在调试器里找到了这个标记的名称字符串:
RevokeMsgPatcher 打补丁时会把这个"验票"逻辑一并处理掉,于是第二个、第三个微信都能顺利进场。如果你暂时不想动主程序,项目还附带一个独立的微信多开小工具(RevokeMsgPatcher.MultiInstance),一键清理互斥句柄,基本无视版本号就能多开。
⚠️ 但要注意:如果你已经用主程序勾选了含"多开"的补丁,就不要再叠加使用那个独立多开工具,两套机制会重复冲突。我一开始没看说明,两个都试了,结果微信半天起不来,还原重装才解决。
这一段用下来:打补丁前 vs 打补丁后
| 场景 | 打补丁之前 | 打补丁之后 |
|---|---|---|
| 对方撤回一条消息 | 只剩一行灰字,内容永久消失 | 内容原样躺在聊天框,随时能翻出来 |
| 对方那边看到什么 | —— | 一切照旧,依然显示"你撤回了一条消息" |
| 想同时登工作号和生活号 | 来回退出、重新扫码 | 一个电脑两个号,互不干扰 |
| 微信自动更新之后 | —— | 补丁被覆盖,需要重新打一次(见下) |
必须知道的坑与边界,用之前请看完
用了这段时间,有四个坑我必须摊开讲,免得你踩我踩过的:
- 杀毒软件报警是常态,不是中毒。补丁要改写核心 DLL,杀软不认识就会拦。放行前请确认你下载的是官方仓库版本,千万别从不明渠道下载来路不明的"修改版"。如果杀软太激进,可以把补丁所在目录加入白名单。
- 版本太新会找不到特征。如果你的通讯软件版本太新,作者还没来得及适配特征库,程序会提示找不到特征。这时候只能等更新,别硬来。
- 官方更新后补丁会失效,这是设计使然。微信一更新,被改过的 DLL 被覆盖,防撤回随之失效。解决办法很简单:关掉微信 → 管理员身份重开程序 → 再点一次"安装补丁",几秒恢复。想省事可以在微信设置里关掉自动更新。另外"备份还原"功能建议一直记着用,出问题一键回官方原版。
- "防撤回带提示(新)"有已知小瑕疵。源码里写得很明白:这个模式存在几个限制——和对方正在聊天时撤回,提示可能不显示;视频/图片消息撤回后仍会被删除;部分历史消息无法防撤回。如果你特别在意图片和视频,可能"防撤回(老)"体验更稳定。这种边界作者都坦诚写在代码注释里,我也是翻源码才发现的,挺佩服这种实在。
写在最后:那半条消息,我终于看全了
回到文章开头的深夜。第二天我才知道,那条被撤回的通知是一份改到凌晨的排班表,而标题里那半句话,恰恰是所有人最关心的"明早八点开会"。
装上 RevokeMsgPatcher 之后,这种"眼睁睁看着消息消失却无能为力"的焦虑彻底没了。重要的通知、来不及看的文件、对方一时手误撤回的话,都安安静静躺在聊天记录里,想回看随时能回看。获取方式很简单,一条命令的事:
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher最后多说一句:工具的价值在于合理使用。它是修改官方程序的灰色工具,请把它用在正当用途上——保存工作通知、留下重要记录,而不是去偷看别人的隐私。守住自己该看的信息,尊重别人撤回的权利,这才是最舒服的相处方式。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考