ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

消息又被撤回了?用 RevokeMsgPatcher 三分钟装好微信QQ防撤回补丁

2026/8/15 16:31:16 拓冰建站 浏览量
消息又被撤回了?用 RevokeMsgPatcher 三分钟装好微信QQ防撤回补丁

消息又被撤回了?用 RevokeMsgPatcher 三分钟装好微信QQ防撤回补丁

【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher

你大概也遇到过这种时刻:群里刚发出一段重要通知,几秒钟后变成一行灰色小字"对方撤回了一条消息",紧接着是"以上是历史消息"。工作指令、临时地址、一段关键的话,就这么消失了。RevokeMsgPatcher 就是为这种场景准备的——一款面向 Windows 的开源防撤回补丁工具,它通过十六进制编辑技术,让 PC 版微信、QQ、TIM 在收到"撤回"指令时不执行删除动作,把消息原样留在聊天记录里。

先讲一个我们都会遇到的"瞬间"

先说个真实的例子。有一次同事在群里发了新项目的服务器地址,我看了一眼没记住,回头想翻聊天记录,发现已经被撤回了,只能硬着头皮再问一遍。这种事发生几次之后你就会意识到:撤回按钮给了发送者反悔的自由,却让接收方丢了"知情权"。RevokeMsgPatcher 解决的正是这个不对称——它不修改任何网络数据,也不影响对方,只是在你本地电脑上,让聊天软件"假装没收到撤回指令"。

项目作者对它的定义很有意思:A hex editor for WeChat/QQ/TIM,一款专门伺候微信、QQ、TIM 的十六进制编辑器。它要做的不是截包、不是外挂,而是直接在软件的 DLL 文件里找到"撤回"这段逻辑,然后精确地改写几个字节。

一次安装,覆盖四款主流聊天软件

这款消息防撤回补丁的支持范围可以先用一句话概括:Windows 上主流的几款腾讯系聊天软件,基本都覆盖了。

  • 微信 PC 版:支持防撤回,并且可以顺便选择安装"多开"功能
  • QQ PC 版:支持防撤回
  • TIM:支持防撤回
  • QQ 轻聊版:支持防撤回
  • 新版 QQ(NT 架构):支持群聊防撤回

安装版软件通常会被自动识别安装路径(工具会从 Windows 注册表里读取),绿色版则需要你手动指定一下目录,剩下的事都是点几下鼠标。

三分钟上手:从下载到生效的完整步骤

整个操作过程比想象中简单,照着下面走一遍就行:

  1. 先关掉要打补丁的软件:微信、QQ、TIM 的进程必须完全退出,否则文件被占用会修改失败。
  2. 以管理员身份运行:右键点击RevokeMsgPatcher.exe,选择"以管理员身份运行",程序启动后会自动在右下角获取最新的补丁信息。
  3. 确认软件路径:安装版会自动检测,绿色版手动浏览到安装目录。
  4. 勾选功能并点击补丁:微信用户可以同时勾选"防撤回"和"多开",其他软件勾选"防撤回"即可。
  5. 等待完成并放行杀毒软件:界面可能短暂无响应,这是正常的,耐心等它跑完。由于修改的是WeChatWin.dllIM.dll这类核心文件,杀毒软件多半会弹出警告,选择放行/信任即可。

打完之后重新启动聊天软件,找朋友发一条测试消息再撤回,如果消息还在,就说明补丁已经生效了。

补丁背后:一次跳转指令的旅行

防撤回看起来神奇,原理其实很直白——它建立在所有程序最终都是"一堆指令"这个事实上。微信收到"撤回"请求后,会走到一段负责删除消息的代码。这段代码前面通常有一个判断:条件满足,就执行删除;不满足,就跳过。

这个"判断"在汇编层面往往表现为一条条件跳转指令(je),而 RevokeMsgPatcher 要做的,就是把它替换成无条件跳转(jmp),让程序无论如何都跳过删除逻辑。说人话就是:程序本来会在路口看灯,绿灯才让撤回通过;补丁把红绿灯整个拆了,撤回永远停在路口。

图:在调试器中附加 WeChat.exe 进程,开始定位微信防撤回相关的关键代码。

定位这段代码的过程也很有意思。开发者先在调试器里加载微信的wechatwin.dll模块,然后搜索"revokemsg"这类特征字符串,顺着字符串找到引用它的代码块,再逐条检查附近的跳转指令。

图:在 wechatwin.dll 中搜索撤回相关字符串,顺着引用关系锁定关键代码区域。

图:找到revokemsg附近的je条件跳转指令,这就是要改写的目标。

改完之后,通过调试器的补丁功能把改动写回 DLL 文件,一次防撤回补丁就完成了。QQ 和 TIM 的流程与微信完全一致,只是目标文件换成了IM.dll

图:在补丁窗口中确认改动内容(如74 -> EB),然后写回 DLL 文件。

先备份,再动手:为什么它可以放心反悔

改核心 DLL 文件听起来有点吓人,但工具在设计上给了足够的"后悔药":

  • 自动备份:修改前会生成.h.bak备份文件,还原功能一键恢复原状。
  • SHA1 校验:每个补丁都附带修改前后的 SHA1 值,只有文件指纹完全匹配才会动手,避免改错文件。
  • 双模式匹配:老版本走"精确匹配"——按 SHA1 对号入座;新版本走"通用特征码"——按版本范围模糊匹配,覆盖更广。

特征码的查找还用上了经典的 Boyer-Moore 匹配算法,让程序在几十 MB 的 DLL 里快速定位到需要修改的那几个字节。数据层面,每个版本的补丁信息都存放在独立的patch.json中,这也是项目能持续跟进新版软件的基础。

顺手还送你一个微信多开工具

防撤回之外,项目还附带了一个通用的微信多开工具(RevokeMsgPatcher.MultiInstance),它无视微信版本号就能实现多开。原理很简单:微信靠互斥体(Mutex)判断自己是不是唯一实例,多开工具把这个标志清掉,微信就以为"没有其他实例在运行"。

工具提供两种玩法:

  • 自动模式:点一下"启动多开",之后想开几个微信就开几个(注意别点太快,太频繁可能启动失败)。
  • 手动模式:提供"关闭所有微信进程"和"清理所有微信互斥句柄"两个按钮,适合需要精细控制的场景。

需要提醒的是:如果你已经用 RevokeMsgPatcher 给微信打过补丁并勾选了多开,微信本身已经支持多开,就不要再重复使用这个独立工具了。

软件更新之后,补丁会失效,怎么办

这是所有防撤回工具的共同宿命:聊天软件一更新,特征码就变了,补丁随之失效。应对办法很简单——每次软件更新后,重新运行一次 RevokeMsgPatcher 再打一遍补丁。数据文件里的版本支持范围会不断跟进,所以建议关注项目更新,用最新版本打补丁,兼容性最好。

用之前,先记住这三条注意事项

  • 系统门槛:需要 Windows 7 或更高版本(不支持 XP),并且安装了 .NET Framework 4.5.2 及以上版本,否则程序可能打不开或直接报错。
  • 安全边界:工具修改的是本地文件,不联网上传任何数据。但请把它用在正当用途上——比如保护工作信息和学习研究,而不是窥探他人隐私。是否违背软件用户协议,需要你自己权衡。
  • 杀软误报:修改 DLL 属于敏感操作,杀毒软件报警是正常现象,从官方渠道获取工具、确认文件来源可信后再放行。

源码长什么样:给想一探究竟的你

项目是模块化设计,想深入研究的话可以从这几个目录入手:

  • Matcher/:特征码匹配算法(Boyer-Moore、模糊匹配、修改点查找)
  • Modifier/:各软件的修改器实现(微信、QQ、TIM、QQ 轻聊版、QQNT、新版微信)
  • Model/:补丁数据模型,包括版本与修改信息
  • Utils/:文件、字节、路径等底层工具类
  • RevokeMsgPatcher.Assistant/:用于生成和校验补丁数据的辅助工具

值得一提的是,这套方案并非闭门造车:项目早期内容源自社区的开源成果,2.1 版本的 QQNT 防撤回特征来自 NTQQAntiRecall,微信 4.0 之后的特征则来自 BetterWX,是典型的"站在社区肩膀上"的开源协作。项目以 GPLv3 协议开源,所有代码透明可查。

现在就动手:下载、试用、反馈

如果你已经受够了"撤回即消失",不妨花三分钟试试这个工具。安装包可以从项目仓库获取:

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),仅供参考