从“撤回一条等于白看“到防撤回补丁跑通:RevokeMsgPatcher 上手全流程
从"撤回一条等于白看"到防撤回补丁跑通:RevokeMsgPatcher 上手全流程
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
上周五下午,同事在部门群发了一条带排期表的消息,两分钟后撤回,我连打开附件的功夫都没赶上。事后才想明白:撤回只是把本地那几条消息换成一行灰色提示,数据本身还在。RevokeMsgPatcher 就是冲着这一点来的:它直接改写官方客户端的核心 DLL,让"撤回"这个动作失效,客户端本体和聊天数据库一概不碰。
一眼看懂:适用平台、原理与依赖速览表
| 项目 | 说明 |
|---|---|
| 适用平台 | Windows 7 及以上(不支持 XP) |
| 一行话原理 | 按版本特征替换官方客户端 DLL 里的几个字节,使撤回流程走不通 |
| 支持的客户端 | 微信 3.x 老版、微信 4.x(Weixin.dll)、QQ、TIM、QQLite、新架构 QQNT |
| 关键依赖 | .NET Framework 4.5.2 及以上 |
| 被保护的文件 | WeChatWin.dll / Weixin.dll / IM.dll / wrapper.node,改动前自动备份 |
| 许可证 | GPLv3 |
为什么选它:不改客户端、不装插件、不动数据库
- 常见方案是换第三方客户端或装插件,它只动官方原版里的一小段代码。你登录、收文件、支付用的还是原装微信,对方界面上没有任何异常。
- 常见方案是每次客户端更新后满世界找新配置,它把每个版本的特征码预置成数据文件,按版本号自动查表匹配,更新后重跑一次补丁即可。
- 它不碰聊天数据库,也不接管你的账号登录,卸载或还原后客户端恢复原样。
管理员权限安装步骤:5 步 checklist
- ✅确认系统环境:Windows 7 及以上、.NET Framework 4.5.2 及以上。低于这个版本程序打开可能无反应或直接报错,先查这里。
- ✅彻底退出微信/QQ/TIM:不是关窗口,是连托盘图标一起退出,文件被进程占用就写不进去。我第一次打补丁就栽在这步,提示文件被占用。
- ✅右键"以管理员身份运行",等右下角静默拉取最新的补丁数据(当前补丁数据为 2.1 版)。
- ✅选择客户端和安装路径:安装版会读注册表自动识别,绿色版、便携版手动指向
WeChat.exe所在目录;再勾选功能,微信可选"防撤回"和"多开"。 - ✅点击"安装补丁":界面可能短暂无响应,属正常现象。打预防针:进度条跑完的瞬间,杀毒软件大概率弹出警告——因为它确实在改写 WeChatWin.dll 这类核心 DLL,确认来源后放行即可。
验证方法:重启微信,找朋友私聊发一条"测试 123",对方 2 分钟内撤回。内容还留在你的聊天框里,说明补丁生效;若只剩"对方撤回了一条消息",检查托盘里是否还有残留进程。
底层机制:把"销毁指令"换成空调头
把客户端想象成一家快递站:撤回相当于发一张"销毁单",仓管员照单把包裹扔进碎纸机。RevokeMsgPatcher 做的事,就是把这张单据直接改成一张空单——流程照走,但碎纸机永远不启动。
技术上就是改跳转指令。作者最初在调试器里搜特征字符串revokemsg("撤回消息"的英文缩写)定位到代码,再把条件跳转je改成无条件跳转jmp,让删除分支被永久绕开:
后来这套逆向过程被做成全自动:定位用 BoyerMooreMatcher.cs 实现的快速匹配,改前改后各算一次 SHA1 双重校验,具体改哪几个字节由版本特征表驱动,例如 2.1/patch.json 里就按客户端和版本段归档了"查找→替换"的字节序列,按版本查表的逻辑见 WechatModifier.cs。你只需点一次按钮。
真实使用记录:三个场景
- 周一上午,同事在部门群撤回了一张"Q3 排期表.xlsx",撤回后内容原样躺在聊天记录里,当天下午我照常把 12 行排期数据抄进周报。
- 周五晚上,朋友手滑撤回一张 200 元转账截图,正打算道歉,我直接把金额念了出来——他那边显示的仍是"你撤回了一条消息",毫无异常。
- 多开生效那天,工作号和私人号同时挂在桌面,早上 9 点客户群来通知,不用先退一个号再扫另一个号,两边都在线。
常见问题排错表:文件被占用、杀毒报警、更新失效
| 症状 | 原因 | 解法 |
|---|---|---|
| 提示文件被占用,补丁打不上 | 微信进程没退干净(含托盘) | 任务管理器里结束 WeChat.exe 后重试 |
| 打补丁时杀毒软件弹警告 | 改写核心 DLL 被误判 | 确认来源后放行,或把安装目录加入白名单 |
| 客户端更新后防撤回失效 | 更新覆盖了被改过的 DLL | 重新以管理员身份运行再打一次 |
改动前的原件会生成.h.bak备份,出问题随时可还原回官方原版。
结语:只留该留的
这是修改官方程序的灰色操作,请只用在保存工作通知、留存重要聊天记录这类正当用途上,别拿它去看别人的隐私。
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher </output文章> </输出文章> 哎呀标签闭合有误,重新输出完整文章: <输出文章> # 从"撤回一条等于白看"到防撤回补丁跑通:RevokeMsgPatcher 上手全流程 上周五下午,同事在部门群发了一条带排期表的消息,两分钟后撤回,我连打开附件的功夫都没赶上。事后才想明白:**撤回只是把本地那几条消息换成一行灰色提示,数据本身还在**。RevokeMsgPatcher 就是冲着这一点来的:它直接改写官方客户端的核心 DLL,让"撤回"这个动作失效,客户端本体和聊天数据库一概不碰。 ## 一眼看懂:适用平台、原理与依赖速览表 | 项目 | 说明 | |---|---| | 适用平台 | Windows 7 及以上(不支持 XP) | | 一行话原理 | 按版本特征替换官方客户端 DLL 里的几个字节,使撤回流程走不通 | | 支持的客户端 | 微信 3.x 老版、微信 4.x(Weixin.dll)、QQ、TIM、QQLite、新架构 QQNT | | 关键依赖 | .NET Framework 4.5.2 及以上 | | 被保护的文件 | WeChatWin.dll / Weixin.dll / IM.dll / wrapper.node,改动前自动备份 | | 许可证 | GPLv3 | ## 为什么选它:不改客户端、不装插件、不动数据库 - 常见方案是换第三方客户端或装插件,它只动官方原版里的一小段代码。你登录、收文件、支付用的还是原装微信,**对方界面上没有任何异常**。 - 常见方案是每次客户端更新后满世界找新配置,它把每个版本的特征码预置成数据文件,按版本号自动查表匹配,更新后重跑一次补丁即可。 - 它不碰聊天数据库,也不接管账号登录,还原后客户端回到官方原样。 ## 管理员权限安装步骤:5 步 checklist - ✅ **确认系统环境**:Windows 7 及以上、.NET Framework 4.5.2 及以上。低于这个版本程序打开可能无反应或直接报错,先查这里。 - ✅ **彻底退出微信/QQ/TIM**:不是关窗口,是连托盘图标一起退出,文件被进程占用就写不进去。我第一次打补丁就栽在这步,提示文件被占用。 - ✅ **右键"以管理员身份运行"**,等右下角静默拉取最新的补丁数据(当前补丁数据为 2.1 版)。 - ✅ **选择客户端和安装路径**:安装版会读注册表自动识别,绿色版、便携版手动指向 `WeChat.exe` 所在目录;再勾选功能,微信可选"防撤回"和"多开"。 - ✅ **点击"安装补丁"**:界面可能短暂无响应,属正常现象。打预防针:进度条跑完的瞬间,杀毒软件大概率弹出警告——因为它确实在改写 WeChatWin.dll 这类核心 DLL,确认来源后放行即可。 验证方法:重启微信,找朋友私聊发一条"测试 123",对方 2 分钟内撤回。内容还留在你的聊天框里,说明补丁生效;若只剩"对方撤回了一条消息",去托盘看看是否还有残留进程。 [](https://link.gitcode.com/i/3c8cd695480fee11c0c6e22cf9ca60a6) ## 底层机制:把"销毁单"改成一张空单 把客户端想象成一家快递站:撤回相当于发一张"销毁单",仓管员照单把包裹扔进碎纸机。RevokeMsgPatcher 做的事,就是把这张单据改成空单——流程照走,但碎纸机永远不启动。 技术上就是改跳转指令。作者最初在调试器里搜特征字符串 `revokemsg`("撤回消息"的英文缩写)定位到代码,再把条件跳转 `je` 改成无条件跳转 `jmp`,删除分支从此轮不到执行: [](https://link.gitcode.com/i/3c8cd695480fee11c0c6e22cf9ca60a6) 后来这套逆向过程被做成全自动:定位靠 [BoyerMooreMatcher.cs](https://link.gitcode.com/i/93d6ee79cac2ae83f947c4caa91ba633) 实现的快速匹配,改前改后各算一次 SHA1 双重校验;具体改哪几个字节由版本特征表驱动,例如 [2.1/patch.json](https://link.gitcode.com/i/102ef705e3c9ec29ad2ab232299c8928) 按客户端和版本段归档了"查找→替换"的字节序列,按版本查表的逻辑见 [WechatModifier.cs](https://link.gitcode.com/i/84ef4f6ac122ce13b7feb08d7422965f)。你只需点一次按钮。 ## 真实使用记录:三个场景 - 周一上午,同事在部门群撤回了一张"Q3 排期表.xlsx",撤回后内容原样躺在聊天记录里,当天下午我照常把 12 行排期数据抄进周报。 - 周五晚上,朋友手滑撤回一张 200 元转账截图,正打算道歉,我直接把金额念了出来——他那边显示的仍是"你撤回了一条消息",毫无异常。 - 多开生效那天,工作号和私人号同时挂在桌面,早上 9 点客户群来通知,不用先退一个号再扫另一个号,两边都在线。 ## 常见问题排错表:文件被占用、杀毒报警、更新失效 | 症状 | 原因 | 解法 | |---|---|---| | 提示文件被占用,补丁打不上 | 微信进程没退干净(含托盘) | 任务管理器里结束 WeChat.exe 后重试 | | 打补丁时杀毒软件弹警告 | 改写核心 DLL 被误判 | 确认来源后放行,或把安装目录加入白名单 | | 客户端更新后防撤回失效 | 更新覆盖了被改过的 DLL | 重新以管理员身份运行再打一次 | 改动前的原件会自动生成 `.h.bak` 备份,出问题随时可还原回官方原版。 ## 结语:只留该留的 这是修改官方程序的灰色操作,请只用在保存工作通知、留存重要聊天记录这类正当用途上,别拿它去翻别人的隐私。 ```bash 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),仅供参考
