微信防撤回一步到位:RevokeMsgPatcher 新手指南(Windows 微信/QQ/TIM)
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
RevokeMsgPatcher 是一款 Windows 上的开源消息防撤回补丁工具,思路只有一句话:撤回是程序里的一条分支,那就把这个分支就地废掉。它不改聊天内容、不拦截网络数据,只对你本机的微信 WeChatWin.dll、QQ/TIM 的 IM.dll 做定点字节修改。对方照常点撤回,你这边消息原封不动。
上手前的能力清单:
- 防撤回:覆盖 PC 版微信、QQ、TIM,以及新版 QQNT 的群聊场景;
- 微信多开:绕过单实例限制,同一台电脑登录多个微信账号;
- 版本自识别:内置从早期版本到当前版本的补丁数据,工具自动匹配你手上的文件;
- 改前备份、改后校验:动文件前先留一份原件,写完再复查,随时能还原。
上图是它的工作界面:基于调试器 x32dbg 布局,左侧是反汇编和内存视图,右下角弹出补丁对话框,确认后一键把修改写进文件。
撤回消息原理解析:两步找到并改掉撤回开关
整个过程拆成两层,一层是"找",一层是"改"。
第一步,定位开关。撤回动作在程序里对应一段逻辑,大致是"收到撤回通知 → 判断是否满足条件 → 满足就删消息"。这段逻辑的机器码藏在 WeChatWin.dll 里。好在程序作者偷懒,把 "revokemsg" 这样的字符串原样写进了 DLL,工具就顺着这个关键词搜,几秒内就能跳到你站的那段代码面前。
第二步,改写开关。定位后看到的是这么一条指令:JE(Jump if Equal,"相等就跳"),机器码首字节是 0x74。它的作用是先判断"该不该走撤回流程",判断成立才跳转。把 0x74 换成 0xEB(JMP,无条件跳转),判断这一步就永远绕不过去,撤回流程从此走不到。
不同版本的软件,文件结构和偏移量都不一样,总不能每次升级都重新翻一遍。所以工具用一份 patch.json 记录"改哪里、改成什么"。以微信 3.3.5.25 的 WeChatWin.dll 为例,它长这样:
{ "Name": "WeChatWin.dll", "Version": "3.3.5.25", "SHA1Before": "3e94753ccbc2799d98f3c741377e99bdae33b4cf", "SHA1After": "ab98f83fc16674ac4911380882c79c3ca4c2fd71", "Changes": [ { "Position": 3413977, "Content": [235] }, { "Position": 12159591, "Content": [235] } ] }给文件"做指纹"再动刀:SHA1Before 是改之前的文件指纹,对不上就说明版本不对、直接停手,保证不会改错文件;Changes 里的 Position 和 Content 则是"在第几字节写入什么值"(235 即 0xEB,也就是 JMP)。写完还能用 SHA1After 复核,指纹一致才算成功。精准、可回退,靠的就是这套"指纹比对 + 定点修改"。
适用版本矩阵:微信、QQ、TIM、QQNT 一张表看全
| 软件 | 版本起点 | 被修改的文件 | 获得的能力 |
|---|---|---|---|
| 微信 PC 版 | 2.6.6.28 | WeChatWin.dll | 防撤回、多开 |
| QQ PC 版 | 9.0.4.23786 | Bin\IM.dll | 防撤回 |
| TIM PC 版 | 2.3.2.21173 | Bin\IM.dll | 防撤回 |
| QQNT 版 | 9.8.0.19000 | wrapper.node | 群聊防撤回 |
如果你的版本还不在清单里,也别急着放弃:Images/wiki 目录下有分微信、QQ 两套的手动打补丁图文教程,按图索骥也能自己把新版本适配出来。
动手前自检:四项都过了再打补丁
动手前花一分钟对一遍清单,能省掉后面九成排障时间:
- 系统环境:Windows 7 或更高版本(不支持 XP),且装有 .NET Framework 4.5.2 或更高。低于这个版本,程序打开可能无反应或直接报错;
- 完整退出目标软件:不只是关窗口,右下角托盘图标也要退出。文件被进程占用,补丁必然写不进去;
- 管理员身份运行:修改程序文件需要写盘权限,右键选择"以管理员身份运行";
- 杀软预警:工具会改动 WeChatWin.dll、IM.dll 这类 DLL,杀毒软件弹警告属于正常误报,放行即可。
微信防撤回工具怎么用:四步从启动到验证
第一步,启动。以管理员身份运行 RevokeMsgPatcher,等右下角提示获取到最新补丁信息。
第二步,定位安装路径。安装版的微信/QQ/TIM 一般会被自动从注册表里扫出来,界面上直接显示路径;绿色版没扫到的话,手动指定安装目录。
第三步,应用补丁。勾选"防撤回",需要多开就把"多开"也勾上,点击安装。期间界面可能短暂无响应,属正常现象,别连点。工具内部依次执行:比对文件指纹 → 生成备份 → 写入字节改动 → 复查校验。
第四步,验证。重启微信,发一条消息让对方撤回:对方那头显示"已撤回",你这边消息还在,补丁就算成了。
微信多开是怎么实现的:一把互斥锁的事
微信限制单实例,靠的是互斥锁(Mutex)机制:启动时创建一把名叫 "WeChat_App_Instance_Identity_Mutex_Name" 的锁,第二个实例抢锁失败就自动退出。工具要做的,就是找到这把锁相关的代码判断,把它绕开。
操作上什么都不用多做:打补丁时勾上"多开"复选框一起写入即可。之后同一台电脑可以并行跑多个微信,各自登录不同账号,互不干扰。
故障速查:防撤回补丁打不上怎么办
| 现象 | 常见原因 | 处理 |
|---|---|---|
| 程序打开没反应或报错 | 缺少 .NET Framework 4.5.2 | 装 4.5.2 或更高版本后重试 |
| 补丁总是打不上 | 软件没退干净 / 没给管理员权限 / 版本不在覆盖范围 | 按顺序排查:先彻底退出软件,再确认以管理员运行,最后核对版本 |
| 杀毒软件报毒 | 修改 DLL 属敏感行为,多为误报 | 将工具加入信任白名单,或改用系统自带杀软判定 |
| 软件更新后防撤回失效 | 更新会覆盖掉被修改的文件 | 更新完成后重新打一次补丁 |
QQ 和 TIM 的防撤回走同一套流程:改的是 Bin 目录下的 IM.dll,定位方式也是先附加进程、再按字符串搜索。QQ 的入口长这样:
打完补丁之后:三件值得记住的事
- 备份别删。工具会在安装目录自动生成被修改文件的备份,哪天想恢复原样,拿备份一键还原即可。
- 更新后重打补丁。微信/QQ 一升级,被改的文件就被覆盖回去了。把"升级后回来补一刀"当成习惯。
- 守住边界。防撤回保护的是你接收信息的完整性,别拿它去窥探别人的隐私。
整个流程算下来:自检一分钟、打补丁一分钟、排障查一张表。把 RevokeMsgPatcher 收进工具箱,下次再遇到"说撤就撤",你这边依然看得见。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考