三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

告别“消息已撤回“:RevokeMsgPatcher 防撤回工具 5 步上手保姆级指南

告别“消息已撤回“:RevokeMsgPatcher 防撤回工具 5 步上手保姆级指南

告别"消息已撤回":RevokeMsgPatcher 防撤回工具 5 步上手保姆级指南

【免费下载链接】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 的思路更直接:让客户端根本不执行"撤回"这个动作。对方撤回了,你的聊天窗口里依然能看到完整内容。

更贴心的是,它顺带提供了一个高频需求——微信多开,工作号和私人号可以同时登录、互不打扰。一个工具,两件事一起解决。

二、5 分钟看懂原理:给程序换一条"必经之路"

先说结论:防撤回补丁的核心,是修改程序文件里的一个字节。

听起来玄乎,其实可以打个比方。程序处理一条消息,就像车辆行驶在一条马路上。原本的路口装着一盏红绿灯:绿灯亮起,车辆转弯进入"撤回处理"的支路;红灯亮起,车辆直行,消息正常保留。防撤回补丁做的事情,就是把红绿灯拆掉、把绿灯焊死——无论什么情况,车辆都直行,永远走不到撤回逻辑那条路

具体到技术上,整个过程分三步。

第一步:在 DLL 文件里"找线头"

微信的撤回逻辑藏在WeChatWin.dll,QQ 和 TIM 则集中在IM.dll。开发者在 x32dbg 调试器中附加微信进程后,先搜索revokemsg这样的关键字符串——在 Windows 程序里,字符串就是函数调用的"路标",顺着它很快就能锁定撤回代码所在的区域。

第二步:把"如果"改成"无论"

定位到目标后,会看到类似这样的汇编指令:je(等于则跳转)。它表达的逻辑是"如果满足条件,就执行撤回"。开发者要做的,只是把这一个字节从je改成jmp(无条件跳转),语义就变成了"无论什么情况,都跳过撤回"。一字节之差,撤回就此失效。

第三步:写回文件,永久生效

把修改后的字节码通过调试器的补丁功能写回 DLL 文件,重启微信即可生效。因为是直接改文件,所以重启电脑、重登账号都不会让补丁失效

顺带一提,这个项目把整套"找位置—匹配—修改"的逻辑做成了清晰的模块:Modifier/目录下放着微信、QQ、TIM 各自的修改器(如WechatModifier.cs),Matcher/目录提供字节码匹配算法,而每个补丁的具体参数(文件位置、修改内容、SHA1 校验值)都记录在Model/ModifyInfo.cs这类数据结构里。这也是它能同时维护微信、QQ、TIM 多条产品线的原因。

三、动手之前:4 条检查清单

安装前先对号入座,能省下不少折腾:

  1. 系统版本:Windows 7 及以上,不支持 XP
  2. 运行环境:需要 .NET Framework 4.5.2 或更高版本,版本太低时程序可能无反应或直接报错
  3. 权限:必须以管理员身份运行
  4. 软件状态:先彻底退出微信、QQ、TIM 的所有进程

四、5 步完成防撤回补丁安装

步骤 1:拿到工具

方式一:直接下载编译好的可执行文件,解压即用。方式二:想自己编译,可以克隆源码:

git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher

步骤 2:以管理员身份运行

右键点击RevokeMsgPatcher.exe,选择"以管理员身份运行"。程序会自动从右下角获取最新的补丁信息,稍等几秒。

步骤 3:选择目标软件和路径

程序会自动检测你电脑上安装的微信、QQ、TIM 路径;如果用的是绿色版、免安装版,需要手动指定安装目录。

步骤 4:勾选需要的功能

微信可以同时勾选"防撤回"和"多开",QQ、TIM 勾选"防撤回"即可。界面会显示当前检测到的版本号,方便核对。

步骤 5:点击"安装补丁"

点击后界面可能出现十几秒的无响应,这是正常现象,耐心等待即可。完成后重新打开对应的通讯软件,补丁就生效了。

注意:微信、QQ、TIM 每次升级新版本后,都需要重新运行一次工具、重新安装补丁。

五、一张表看懂兼容范围

软件平台支持版本范围被修改的文件支持的功能
微信2.6.6.28 至 3.3.5.25WeChatWin.dll防撤回 + 多开
QQ9.0.4 及以上版本段IM.dll防撤回
TIM2.3.2.21173 及以上IM.dll防撤回
QQ 轻聊版7.9.14308.0 及以上IM.dll防撤回
新版 QQ(QQNT 架构)持续跟进中按新架构特征匹配防撤回

六、6 个高频问题与避坑提醒

1. 杀毒软件报警了怎么办?补丁要修改微信、QQ 的程序文件,杀毒软件弹出警告属于常见误报。把工具加入白名单、或安装时临时放行即可,请从可靠渠道下载以确保安全。

2. 安装一直失败?九成原因是没关软件,或者没有用管理员身份运行。先检查这两点。

3. 用了几天,补丁突然失效?几乎可以肯定是软件自动更新到了新版本。旧补丁的特征码对不上新文件,重新安装一次即可。

4. 改坏了能恢复吗?能。工具安装前会自动备份原始文件,界面上提供"备份还原"按钮,一键恢复原状。同时,修改前后都会校验 SHA1 值,确保改动落在预期位置。

5. 微信多开会封号吗?多开本身是官方预留的能力,工具只是帮你免去了手动操作。不过任何非官方行为都有一定风险,建议量力而行。

6. 所有版本都能用吗?不能。补丁基于固定版本的特征码,绿色版、魔改版可能匹配不上。遇到这种情况,先更新到官方原版再试。

七、进阶玩法:技术爱好者可以亲手拆一次

如果你不满足于"点一下就完事",完全可以跟着项目 wiki 里的图文教程,用调试器亲手走一遍完整流程:

  • 用 x32dbg 附加微信进程,定位wechatwin.dll模块
  • 搜索revokemsg字符串,顺着调用关系找到判断逻辑
  • 把关键的je指令改成jmp
  • 通过"补丁"窗口把字节码写回文件

QQ 和 TIM 的流程如出一辙,只是目标换成了IM.dll,搜索的字符串也各不相同。

值得说明的是,每个补丁本质上就是一份 JSON 描述:在文件的哪个位置、改成什么字节、改完之后的 SHA1 是什么。理解了这套格式,你甚至可以自己给新版本写补丁——这也是社区贡献的主要方式。

八、一个开源项目是怎么长大的

从 0.7 一路走到 2.1,这个项目的成长脉络很清晰:

  • 0.7:只有微信防撤回
  • 0.8:加入 QQ 支持
  • 0.9:引入特征码匹配,兼容性大幅提升
  • 1.x:完善版本适配与备份还原机制
  • 2.x:跟进新版 QQ(QQNT 架构),并沉淀出一个独立的微信多开工具

作为 GPLv3 开源项目,任何人都可以参与:提交新版本的补丁、改进匹配算法、完善文档、报告问题。让新版本上线后补丁能更快跟上,是它一直在努力的方向。

九、写在最后:用之前想清楚三件事

技术本身没有立场,边界在使用者手里。最后想提醒三件事:

  • 撤回功能也是一种保护:它能防止误发、维护隐私。防撤回是把双刃剑,请用在"保存关键信息"上。
  • 尊重他人:不要让工具变成偷看聊天记录的手段。
  • 合法合规:不同平台、不同地区对这类工具的态度不一,请在自己的使用范围内谨慎选择。

如果你也受够了"重要消息被撤回"的焦虑,不妨花五分钟按上面的步骤装一次 RevokeMsgPatcher。下一次,当有人在你面前撤回消息时,你就能从容地回一句:"抱歉,我已经看到了。"

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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表