微信/QQ/TIM 消息被撤回找不回?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 的底层文件,让"撤回"指令彻底失效,还顺手把微信多开一起做了。项目自述很直白——"我已经看到了,撤回也没用了"。
那些年,被"消息已撤回"坑过的瞬间
消息撤回本是社交软件的纠错功能,却在无数场景里变成了"信息黑洞"。
工作上,群公告被误撤、需求文档刚弹出就被回收、领导补充说明前脚发后脚删;生活中,朋友分享的链接、家人叮嘱的重要提醒,一撤就再也找不回来。更麻烦的是,撤回是不可逆的——聊天记录里只留下一条灰色提示,原始内容无从查证。
传统应对方式无非两种:截图靠手速、或者靠"消息记录同步"碰运气。前者看天吃饭,后者功能受限。而 RevokeMsgPatcher 给出的方案简单粗暴:从源头让撤回失效。
它特别适合三类人:
- 职场人士:群聊通知、客户需求、项目资料,件件都需要留痕;
- 多账号用户:需要工作号和生活号同时在线的人,能直接用上它的微信多开;
- 技术爱好者:想弄明白"软件是怎么被改的",可以顺着教程亲手逆向一遍。
动手前先查清单:它支持哪些软件与版本
用之前,先确认自己的软件在不在支持名单里。项目维护了一张清晰的兼容性清单:
| 软件 | 支持范围 | 核心修改文件 | 附带功能 |
|---|---|---|---|
| 微信(PC 版) | 2.6.6.28 起,含 3.x / 4.x 特征码 | WeChatWin.dll | 防撤回 + 多开 |
| 微信 4.x(新架构) | 4.0 及以上 | Weixin.dll | 防撤回 + 多开 |
| 9.0.4 起,含 9.4.7 以上 | Bin\IM.dll | 仅防撤回 | |
| QQ 轻聊版 | 7.9.14308.0 及以上 | Bin\IM.dll | 仅防撤回 |
| QQNT(新版 QQ) | 9.8.0.19000 以上 | wrapper.node | 群聊防撤回 |
| TIM | 2.3.2.21173 起 | Bin\IM.dll | 仅防撤回 |
值得注意的一点是,项目同时保留了精确版本库和特征码匹配两套机制:老版本靠"版本号 + SHA1 校验"精确定位,新版本则靠识别二进制特征自动适配。所以哪怕你的版本不在列表里,也常常能一键打上补丁。
三分钟安装清单:下载、授权、点一下就完事
上手流程比想象中简单,全程不需要写一行命令,总共五步:
- 获取程序:clone 仓库自行编译,或直接下载编译好的可执行文件:
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher- 关闭目标软件:先彻底退出微信 / QQ / TIM 的进程,否则文件被占用会导致修改失败;
- 以管理员身份运行:右键点击
RevokeMsgPatcher.exe选择"以管理员身份运行"——修改系统文件必须有这个权限; - 确认路径:安装版软件通常能自动从注册表识别路径,绿色版则需要手动浏览选择安装目录;
- 勾选功能并安装:勾选"防撤回"(微信还能加勾"多开"),点击"安装补丁",等待片刻后重启软件即可生效。
界面非常克制:左侧选软件、中间确认路径、右侧勾功能,一个按钮完成安装。补丁安装后是永久生效的,除非软件本身更新覆盖了文件。
环境要求:Windows 7 及以上(不支持 XP)、.NET Framework 4.5.2 及以上。安装过程中界面短暂无响应属于正常现象,耐心等待即可。
一个字节的秘密:防撤回原理用大白话讲清楚
用一句话概括原理:在软件的二进制文件里,把"决定执行撤回"的开关拨到"永不执行"。
开发者先用 x32dbg 调试器挂载微信进程,在wechatwin.dll中搜索与撤回相关的字符串,从而定位到处理撤回逻辑的代码段:
找到代码后,真正的修改只有一两个字节。在 x86 汇编里,je(Jump if Equal)是"满足条件才跳转"的条件跳转指令,撤回逻辑就挂在这条跳转上。开发者把条件跳转je(机器码 0x74)改成无条件跳转jmp(机器码 0xEB),程序流程便永远不再进入"撤回"分支:
原始指令:74 ?? ; je 条件满足时跳转,执行撤回 修改后: EB ?? ; jmp 无条件跳转,永远跳过撤回改完还要写回文件才算数。在补丁窗口中确认修改项(例如74->EB),点击"修补文件",修改便永久落盘:
整个过程听起来像是"黑客操作",但放到工具里就是一个按钮的事——开发者把最复杂的部分封装好了。
它不是黑魔法:特征码匹配与项目骨架怎么协作
你能想象的坑,作者基本都想到了。首先,每个版本的修改位置都不同,所以补丁数据被组织成一份份结构化配置,存放在RevokeMsgPatcher.Assistant/Data/目录下。以微信 3.3.5.25 为例,配置长这样:
{ "Name": "WeChatWin.dll", "Version": "3.3.5.25", "SHA1Before": "3e94753ccbc2799d98f3c741377e99bdae33b4cf", "SHA1After": "ab98f83fc16674ac4911380882c79c3ca4c2fd71", "Changes": [ {"Position": 3413977, "Content": [235]}, {"Position": 12159591, "Content": [235]} ] }SHA1Before/SHA1After:修改前后的文件指纹,用于安全校验,避免改错文件;Changes:修改位置和写入的字节内容(235 即十六进制 0xEB,对应jmp)。
代码层面,项目也保持了清晰的模块化:主程序RevokeMsgPatcher/下,Modifier/目录为每个软件准备了一个修改器(微信、QQ、TIM、QQNT、Weixin 各有专属类,统一继承抽象基类);Matcher/目录则实现了特征码匹配(Boyer-Moore 算法)、模糊匹配与修改位置查找;RevokeMsgPatcher.MultiInstance/是独立的多开工具。这样设计的好处是:新增一个软件的支持,基本就是新增一个 Modifier + 一份 patch 数据,也让社区贡献补丁变得容易。
翻车自救指南:误报、失效、无响应的标准解法
新手上路最容易遇到下面四个问题,对照处理即可:
- 杀毒软件报警:修改了系统文件的程序被误报很常见。把工具加入白名单,或安装时暂时关闭实时防护即可;
- 补丁"失效":九成原因是软件自动更新覆盖了补丁。更新后重新安装一次补丁就能恢复;
- 程序打不开 / 没反应:检查 .NET Framework 版本是否达到 4.5.2,是否以管理员身份运行;
- 安装失败:确认目标软件进程已完全退出,别让文件被占用。
项目还内置了备份还原功能:每次修改前自动备份原始文件,出问题可以一键恢复,这层保险让试错成本几乎为零。
写在最后:工具没有对错,使用需要边界
RevokeMsgPatcher 让人看到了逆向工程的实用价值——一个字节的改动,就能撬动一款商业软件的行为逻辑。从 0.7 迭代到 2.1,从最初只支持微信,到今天覆盖 QQ、TIM、QQNT 新架构和微信 4.x,这个开源项目的生命力来自持续适配,也来自社区贡献。
但请记住:技术是中立的,边界在于使用的人。消息撤回功能本身是保护发言者权益的设计,防撤回工具适合用于保全自己的工作记录、防止重要信息误删,而不是去窃取他人撤回的私密内容。请尊重他人隐私,遵守平台规则和法律法规,把工具用在该用的地方。
如果你厌倦了"对方撤回了一条消息"的遗憾,不妨从一次 clone、一次安装开始,亲手把信息主动权拿回来。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考