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

日记详情

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

5分钟上手RevokeMsgPatcher:让PC微信、QQ、TIM的撤回功能彻底失效

5分钟上手RevokeMsgPatcher:让PC微信、QQ、TIM的撤回功能彻底失效

5分钟上手RevokeMsgPatcher:让PC微信、QQ、TIM的撤回功能彻底失效

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

消息刚弹出来就被对方撤回,等你反应过来,内容早已消失——这样的场景你遇到过几次?今天介绍的 RevokeMsgPatcher 是一款面向 Windows 的免费开源工具,专门解决这个痛点:它为 PC 版微信、QQ、TIM 提供防撤回补丁,只要按几下按钮,对方撤回的消息就会原样保留在你的聊天窗口里。下面用 5 分钟,从"它解决了什么"到"怎么上手",一次讲透。

那些年,我们错过的"撤回瞬间" 😵

先别急着下载,对号入座看看下面这些场景,是不是每一件都让你血压升高:

  • 同事发来一份项目方案,你刚准备细看,屏幕上只剩一句"对方撤回了一条消息";
  • 客户在 QQ 里确认了报价条款,下一秒消息被撤回,你只能再厚着脸皮问一遍;
  • 群友分享的学习资料链接转瞬即逝,你连点开的机会都没有;
  • 领导发的会议通知被撤回重发,你错过了原来的时间安排,差点白跑一趟。

这些困扰的本质只有一句话:消息的"阅读权"掌握在发送者手里。而 RevokeMsgPatcher 要做的,就是把这份主动权还给你。

不用它 vs 用了它:消息的两种命运

对比项没有 RevokeMsgPatcher使用 RevokeMsgPatcher 之后
对方撤回消息内容立刻消失,只剩提示内容原样保留,照常查看
聊天记录完整性存在永久空缺所有消息完整可查
微信多账号同一电脑只能登录一个支持多开同时在线
操作成本被动接受撤回一次性打补丁,长期生效
对软件的影响仅改动个别字节,功能不受影响

一句话概括:它不拦截撤回动作本身,而是让"撤回"这个动作对你不产生效果。对方在那边撤回,你这边照常看到完整内容。

它到底是怎么做到的?三个问题讲透原理 🔍

问题一:改一个字节,凭什么就能防撤回?

先给个大白话解释:微信、QQ 这类软件在收到"撤回"指令时,代码里会有一个条件判断——"判断这条消息是不是要撤回,是的话就隐藏内容"。

RevokeMsgPatcher 的做法,就是把这条判断从"看情况执行"改成"永远不执行"。

具体到机器码层面,是这样的转换:

; 原始逻辑:满足条件才跳转(执行撤回) cmp eax, ebx je revoke_message ; 0x74 条件跳转 ; 补丁后逻辑:无条件跳转,永远走不进去 cmp eax, ebx jmp revoke_message ; 0xEB 无条件跳转

开发者在调试器中定位到revokemsg相关字符串,找到这处关键跳转指令,再通过补丁工具把它从74改成EB即可。

这种"外科手术式"的单字节修改,只动一处指令,不碰其他任何功能模块,所以软件整体稳定性不受影响。

问题二:版本那么多,它怎么认出你的软件?

不同版本的微信、QQ,二进制代码布局完全不同。RevokeMsgPatcher 用了两道保险:

  1. SHA1 哈希比对:对目标 DLL 计算指纹,精确定位到你的具体版本;
  2. 特征码替换:对没有精确指纹的新版本,通过搜索一段特征字节序列(Search)替换为补丁序列(Replace),兼容性更强。

所有补丁数据都放在项目的RevokeMsgPatcher.Assistant/Data/目录下,按版本号分文件夹管理,结构清晰。比如新版微信 4.0 的防撤回特征,就是靠下面这段特征码匹配的:

{ "Search": [117, 33, 72, 184, 114, 101, 118, 111, 107, 101, 109, 115], "Replace": [235, 33, 72, 184, 114, 101, 118, 111, 107, 101, 109, 115], "Category": "防撤回" }

117235,正是上面的JEJMP。)

问题三:直接改 DLL 文件,改坏了怎么办?

工具比你想的更谨慎。它遵循"先备份、再修改、可还原"的流程:

  • 修改前自动把原文件复制为.h.bak备份;
  • 只有 SHA1 完全匹配的版本才允许打补丁;
  • 界面上提供"备份还原"按钮,一键恢复原始文件。

就算哪次升级出了问题,你也能随时回到修改前的状态,不会陷入"工具删了文件救不回来"的困境。

动手实践:5分钟打补丁全流程 ⚙️

第一步:确认环境

要求项规格检查方式
操作系统Windows 7 及以上(不支持 XP)右键"此电脑"→属性
运行环境.NET Framework 4.5.2 及以上控制面板查看已安装程序
目标软件微信 / QQ / TIM,已安装且完全关闭确保托盘图标也退出了

第二步:获取工具

想直接用的朋友,前往项目发布页面下载最新版压缩包解压即可。

想自己编译的开发者,可以这样获取源码:

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

然后用 Visual Studio 打开根目录的RevokeMsgPatcher.sln编译。

第三步:安装补丁

  1. 以管理员身份运行RevokeMsgPatcher.exe(右键→"以管理员身份运行"),等待右下角获取最新补丁信息;
  2. 选择要修补的软件:微信、QQ 或 TIM,并确认安装路径(安装版会自动从注册表读取,绿色版需手动选择);
  3. 勾选想要的功能——微信可以同时勾选"多开"和"防撤回",QQ、TIM 勾选防撤回;
  4. 点击"安装补丁",等待几秒即可完成。

注意:修改的是微信的WeChatWin.dll、QQ/TIM 的IM.dll,杀毒软件可能弹出警告,放行即可。补丁安装期间界面可能短暂无响应,属正常现象,请耐心等待。

完成后重启对应软件,防撤回即刻生效。如果之后微信、QQ 升级了新版本,需要重新安装一次补丁。

意外之喜:顺手还送一个微信多开 📦

RevokeMsgPatcher 附带一个实用功能——微信多开,让同一台电脑同时登录多个微信账号。

原理同样不复杂:微信通过一个名为互斥锁(Mutex)的机制保证"只能运行一个实例",工具通过补丁绕过了这个检查。

打补丁时勾上"多开",重启后就能同时打开多个微信窗口。另外项目里还内置了一个独立的RevokeMsgPatcher.MultiInstance多开小工具,两者可以按需选择。

打补丁之前,先看这份避坑自查清单 📋

Q:补丁提示失败怎么办?A:按顺序排查——确认微信/QQ/TIM 已彻底退出(包括托盘图标);确认以管理员身份运行;确认软件版本在支持范围内。

Q:防撤回不生效?A:多半是软件版本过新或过旧,超出了补丁数据覆盖范围。可以去补丁数据目录RevokeMsgPatcher.Assistant/Data/看看有没有对应版本,或者更新工具到最新版。

Q:多开功能没反应?A:确认勾选了正确的功能项,并且打补丁后已完全重启软件,而不是只关了窗口。

Q:杀毒软件报警了?A:修改核心 DLL 属于敏感行为,安全软件误报常见。将工具加入信任列表后放行即可,源码完全开源,可以自行审查。

Q:软件升级后防撤回失效了?A:正常现象。每次微信/QQ 升级,二进制布局都会变化,需要重新下载最新版工具并再次打补丁。


到这里,RevokeMsgPatcher 的安装、原理和避坑点就都讲完了。它不是魔法,只是一次精准的"二进制手术"——把撤回的开关从你这边拨到关闭。如果你也厌倦了消息被撤回的无奈,现在就动手试一次,5 分钟换来一个完整的聊天记录,这笔账怎么算都划算。

⚠️ 合规提示:本文内容仅供技术研究与学习交流,请遵守相关法律法规及各软件的《用户协议》,合理使用工具,尊重他人的信息发布意愿。

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

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

← 返回列表