同事又撤回消息?这个开源补丁让微信、QQ、TIM的消息都“撤回不掉“
同事又撤回消息?这个开源补丁让微信、QQ、TIM的消息都"撤回不掉"
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
你有没有过这样的经历:工作群里,领导刚发完明天九点开会、带上合同草案的指令,三秒钟后消息变成了一行灰色小字——"某某撤回了一条消息"。你盯着屏幕愣住,转头想问,又觉得为了这点事追着问很尴尬。类似的场景还有 QQ 群里刚发出的地址、TIM 上传的报价单,以及还没来得及看完就消失的图片和链接。
今天要介绍的 RevokeMsgPatcher(微信防撤回工具),就是专门解决这个问题的开源项目。它是一款运行在 Windows 上的 PC 版微信/QQ/TIM 防撤回补丁工具,原理简单、操作直观,装上之后,别人撤回的消息会原样留在聊天窗口里,项目作者的原话很直白:"我已经看到了,撤回也没用了。"
三个再熟悉不过的瞬间
与其干巴巴地列功能,不如先看几个你我都有可能遇到的实际场景。
场景一:工作群的"手滑"式撤回。同事把任务安排发进群里,随后撤回改口。如果当时你正忙着别的窗口,这则消息可能就彻底错过了。有了防撤回,撤回动作只影响对方,你的聊天记录里依然保留着最初的完整内容。
场景二:群里分享的资源转瞬即逝。朋友发来一个很有用的文档链接,等你点完"保存"再回头,链接已经被撤回。防撤回工具让这类"错过"从根源上消失。
场景三:同时登录多个微信号。做微商、运营多个账号的朋友应该深有体会——PC 端微信默认只允许运行一个实例,换号得反复退出重登。RevokeMsgPatcher 在防撤回之外还顺带支持微信多开,一次安装,两个需求一起解决。
它到底能干些什么?一张表看清
RevokeMsgPatcher 覆盖了国内最主流的几款 PC 端即时通讯软件,具体支持情况如下:
| 软件 | 支持范围 | 核心修改文件 | 可用功能 |
|---|---|---|---|
| PC版微信 | 从老版本到 4.x 新版 | WeChatWin.dll / Weixin.dll | 防撤回、多开 |
| PC版QQ | 多版本通用特征匹配 | IM.dll | 防撤回 |
| TIM | 多版本通用特征匹配 | IM.dll | 防撤回 |
| QQ轻聊版 | 部分版本精准匹配 | IM.dll | 防撤回 |
| QQNT(新QQ) | 9.8.0.19000 起 | wrapper.node | 群聊防撤回 |
除了覆盖面广,它还有几个很实在的特点:
- 自动识别安装路径:通过注册表读取微信/QQ/TIM 的安装位置,绿色版也能手动选择;
- 自动备份原始文件:修改前生成
.h.bak备份,随时可以一键还原; - SHA1 完整性校验:修改前核对文件指纹,避免对不匹配的文件乱改;
- 双重补丁机制:既能按版本号精准替换,也能用特征码匹配未收录的版本;
- 纯本地修改:改的是你电脑上的程序文件,不上传任何聊天数据。
上图为工具主界面,左侧选择要处理的软件,中间勾选功能(多开、防撤回),右侧点击"安装补丁"即可,整体没有多余的复杂设置。
从下载到生效:3步完成防撤回设置
真正动手之前,先确认三件小事:系统是 Windows 7 或更高版本(不支持 XP);已安装 .NET Framework 4.5.2 或以上;操作时微信/QQ/TIM 处于关闭状态。
第 1 步:拿到工具。下载项目发布页的预编译版本,解压后直接运行;有开发环境的话,也可以git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher自行编译。运行后建议右键"以管理员身份运行",否则修改系统目录下的 dll 文件可能因权限不足而失败。
第 2 步:确认目标软件。程序启动后会自动读取注册表填入安装路径,并在下方显示识别到的版本号。如果自动检测没找到(常见于绿色版、便携版),点击路径框右侧的"..."手动定位到安装目录即可。版本号右侧会明确标注当前版本"已支持"、"支持特征防撤回"还是"不支持",一目了然。
第 3 步:勾选功能,点击安装。勾上"防撤回"(微信还能加勾"多开"),点击"安装补丁"。整个过程很快,程序会依次完成文件校验、备份、修改、复查。看到"补丁安装成功"的提示后,重新打开微信/QQ/TIM,防撤回就已生效——可以拉个群发一条测试消息然后撤回,对方的窗口里消息依旧在。
防撤回是怎么实现的?给新手的大白话解释
你可能好奇:一个十几 MB 的小工具,凭什么能让微信的撤回功能失效?其实原理并不神秘,它是通过修改程序二进制文件里的一小段指令做到的。
微信的撤回功能在代码层面是一个"判断 + 执行"的过程:当收到撤回请求时,程序会执行一个条件判断,如果判断成立就删除本地消息、显示"某某撤回了一条消息"。RevokeMsgPatcher 做的就是把这个"条件判断"的跳转指令改写掉——把"条件满足才跳转"改成"无条件跳过"——于是程序收到撤回请求时,直接忽略了删除逻辑,消息自然原封不动。
下面是作者在 x32dbg 调试器里定位微信撤回逻辑时的截图,红色框内即是搜索到的revokemsg相关代码:
定位到关键位置后,把条件跳转指令从JE(等于则跳)改成JMP(无条件跳),撤回的"删除动作"就被绕过了:
多开的原理与之类似——微信靠一个名为WeChat_App_Instance_Identity_Mutex_Name的互斥锁来阻止第二个实例启动,工具把这个检查逻辑一并绕过,于是同一台电脑上可以同时运行多个微信:
为了让修改安全可靠,项目内置了一张"补丁数据库"(RevokeMsgPatcher.Assistant/Data/目录下各版本的patch.json),里面记录了每个版本对应的 SHA1 校验值、需要修改的文件偏移位置,以及可跨版本使用的特征码。工具先校验你电脑上文件确实是"原装货",再决定用精准位置替换还是特征码匹配,改完还能通过二次校验确认没有改错。这套流程保证了:只动和撤回、多开相关的极少数字节,不影响聊天、传输、支付等任何正常功能。
多开:一台电脑同时挂多个微信号
对需要同时打理工作号和私人号、或者运营多个业务账号的用户来说,多开几乎是刚需。勾选"多开"后重新启动微信,再次双击微信图标就能启动第二个实例,每个实例登录不同账号,消息互不干扰。
有一点要提醒:如果使用微信 4.x 新版,防撤回与多开功能会同时作用在同一个文件上,顺序安装即可。另外,项目还附带了一个独立的通用微信多开工具(源码见RevokeMsgPatcher.MultiInstance/README.md),它的原理是运行时清理微信的互斥句柄,几乎无视微信版本——但如果你已经通过本工具给微信装过多开补丁,就不要再用它重复操作了。
常见问题速查表
| 问题 | 解答 |
|---|---|
| 安装补丁后打开软件没反应? | 多半是 .NET Framework 版本过低,升级到 4.5.2 及以上;或以管理员身份重试 |
| 提示"文件校验不通过"? | 说明文件被改动过(可能用过其他补丁工具),先还原为官方原版再操作 |
| 杀毒软件报毒怎么办? | 工具要改写 dll 文件,部分杀软会误报,加入信任列表或临时关闭后放行即可 |
| 微信/QQ 更新后防撤回失效了? | 正常现象,更新会覆盖被修改的文件,重新运行工具装一次补丁即可 |
| 如何恢复到未修改状态? | 工具自带"备份还原"按钮,用.h.bak备份一键还原 |
使用前必看的几条提醒
版本更新要重新打补丁。这是最重要的习惯:每次微信/QQ/TIM 自动更新后,防撤回都会失效,记得重新运行工具安装一次,整个过程也就十几秒。
正确使用"防撤回"的两种模式。部分微信版本提供了"防撤回(老)"和"防撤回带提示(新)"两种选择。老模式干净利落、没有痕迹,但新版本下可能出现撤回自己消息时转圈的小瑕疵;新模式会显示"对方撤回了一条消息"的提示,但视频、图片撤回后仍可能被删除。按自己需求二选一即可,两者不要同时勾选。
把工具当"记录器",别当"偷窥器"。防撤回保护的是你自己的信息完整性,不代表可以随意侵犯他人隐私。合理场景是防止工作信息遗漏、留住群聊里的有用资源;用它去窥探、截图传播他人本意要撤回的私密内容,既违背工具的初衷,也可能带来法律风险。
关注社区更新。项目是开源的(GPLv3 协议),作者会持续跟进新版本适配,README 中维护着完整的支持版本清单。如果你用上了新版本微信发现暂时不支持,耐心等一等补丁数据更新即可。
写在最后
回顾一下,RevokeMsgPatcher 解决的问题很聚焦:PC 端微信、QQ、TIM 的消息撤回让你错过了不该错过的东西。它把这件事的处理方式压缩成了"打开工具 → 选软件 → 点安装"三步,同时用 SHA1 校验、自动备份、双重匹配机制把风险降到了很低,还顺手送了个微信多开功能。
如果你也曾在灰色小字出现时懊恼过,不妨给这个项目一个机会。它是开源软件,代码透明、免费使用,遇到问题还能在源码和文档里找到答案。安装补丁后的第一件事,不妨拉个好友群实测一下:发一条消息,让对方撤回,然后看看那条消息是不是依然安静地躺在聊天记录里。那一刻,你会明白什么叫"我已经看到了,撤回也没用了"。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
