微信QQ防撤回3步速成:RevokeMsgPatcher指南
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
周五晚上九点,部门群里消息刷得飞快。同事发来一句"报价表发你了,记得看",你刚放下咖啡,紧接着跳出一行灰色小字——"对方撤回了一条消息"。那张表格里,有你等了一下午的数字。这样的时刻你一定不陌生:客户确认的条款、老师分享的资料、群里临时改期的通知,总是在你读完之前消失。今天要聊的开源项目 RevokeMsgPatcher,正是一款 PC 端微信、QQ、TIM 防撤回补丁工具,它能让"撤回"这条指令彻底失效。它究竟怎么做到,普通人又能多快上手?
三步认识它
它解决什么问题?
消息撤回其实只是"表面删除"。对方撤回后,本地聊天记录并未真正销毁,只是程序在界面层把它藏了起来。RevokeMsgPatcher 通过修改客户端程序里的关键逻辑,让撤回指令无法生效,消息便会一直留在窗口里。除了防撤回,它还给微信附带了一项"多开"能力,允许同时登录多个账号。
它凭什么做到?
它不重写软件,也不注入脚本,而是直接对程序文件做二进制补丁:先读取 DLL 的版本与 SHA1 值,再从补丁数据库里匹配修改点,把条件跳转指令(JE)改成无条件跳转(JMP)。下图是调试器里补丁的落点,74→EB、55→C3各只改了一个字节,却决定了撤回是否执行。
上图右侧列出了 WeChatWin.dll 的两处改动:74 改为 EB、55 改为 C3。工具做的,就是把这样的手工操作自动化。
它适合哪些人?
需要留存沟通记录的打工人、常错过群消息的学生、要同时挂多个微信的运营者,以及想研究程序逆向的技术爱好者。环境要求不高:Windows 7 及以上系统即可(不支持 XP),也无须安装额外运行库以外的组件。
| 方案 | 操作成本 | 防撤回效果 | 稳定性 | 覆盖范围 |
|---|---|---|---|---|
| RevokeMsgPatcher | 点几下完成 | 撤回后消息保留 | 版本校验,失败可还原 | 微信/QQ/TIM/QQNT |
| 手动截图存档 | 每条消息都截 | 只能留住已看到的部分 | 高 | 任意软件 |
| 手机端转发备份 | 依赖及时操作 | 撤回后无法补救 | 高 | 移动端 |
| 注入式脚本插件 | 需长期维护 | 效果参差不齐 | 低 | 单一版本 |
首次上手:4 步完成防撤回配置
第一步:确认系统满足 3 项硬性条件
- Windows 7 或更高版本,.NET Framework 4.5.2 及以上(低于此版本程序可能打不开)
- 提前完全退出微信、QQ、TIM(文件被占用时补丁会失败)
- 以管理员身份运行 RevokeMsgPatcher.exe,否则可能没有写入 DLL 的权限
若双击后毫无反应,优先检查 .NET 版本;若提示文件占用,到任务管理器里结束残留进程再试。✅
第二步:锁定目标软件的安装路径
启动后,程序会自动从注册表读取微信、QQ、TIM 的安装目录,安装版通常无需手动操作;若是绿色便携版,点击"选择路径"手动定位即可。选错也没关系,工具会校验目标文件是否存在——微信改的是 WeChatWin.dll,QQ 与 TIM 改的是 IM.dll,文件对不上会直接给出提示。
第三步:点击"防撤回",等待补丁完成
点击后工具依次执行:校验版本与 SHA1、从补丁数据目录匹配方案、把原文件备份为*.h.bak、写入修改。期间界面可能短暂无响应,属正常现象,别急着关闭。杀毒软件弹出警告时选择放行——修改 DLL 属敏感操作,容易被误报。
针对新版软件,工具不再依赖逐版本定位,而是改用"特征码"匹配。比如下面这条微信多开补丁,63是通配符,中间字节无论是什么都能命中,兼容面更宽:
{ "Search": [85, 86, 87, 83, 72, 129, 236, 63, 63, 63, 63], "Replace": [195, 86, 87, 83, 72, 129, 236, 63, 63, 63, 63], "Category": "多开" }从汇编层面看,改动本身也很克制:
; 打补丁前:满足条件才跳转,撤回照常执行 je revoke_handler ; 74 xx ; 打补丁后:无条件跳转,绕过撤回检查 jmp revoke_handler ; EB xx第四步:这样验证补丁是否生效
最直接的验证方式:请朋友发一条消息再撤回,你会发现消息仍停留在窗口里,只是多了一行"撤回了一条消息"的提示。另一种信号来自程序界面——你的版本号后方会显示"已支持"或"支持特征防撤回"。若某天功能突然失效,先检查软件是否自动更新过:版本一变,补丁就必须重新打。
避坑指南:新手最容易踩的 5 个坑
- 软件没关就点防撤回:文件被占用导致失败,退出后重试即可。
- 不用管理员身份运行:权限不足时无法写入 DLL,工具会静默失败或报错。
- 打完补丁立刻升级软件:升级会覆盖被修改的 DLL,防撤回随之失效,需重新打补丁。
- 用别的补丁工具改过同一文件:程序校验 SHA1 不过,提示"文件校验不通过",请先还原为原版。
- 让杀毒软件删掉了 DLL:利用生成的
*.h.bak备份还原文件,再重新打补丁并加入信任列表。⚠️
进阶路线:按你的水平挑一条
普通用户:试试随项目附带的独立多开工具 RevokeMsgPatcher.MultiInstance,点击"启动多开"即可开启多个微信,无需重复打补丁。💡
技术爱好者:打开补丁数据目录(RevokeMsgPatcher.Assistant/Data/2.1/patch.json),对照你自己的软件版本号,就能判断当前版本是否在支持范围内,也能看懂 Search/Replace 特征码的含义。
开发者:可以阅读RevokeMsgPatcher/Modifier/下的 WechatModifier.cs、QQModifier.cs、TIMModifier.cs、QQNTModifier.cs 源码,理解两种打补丁路径(精确定位与特征码替换)的取舍;也可以照 wiki 教程,用 x32dbg 附加进程、搜索关键字符串,自己动手定位撤回逻辑。
上面两张图展示了手动逆向的完整链路:从启动调试器、附加进程,到在 IM.dll 里搜索字符串定位撤回代码。工具正是把这段链路封装成了几个按钮。
回到开头。那个周五的晚上,报价表被撤回的瞬间,你其实不必慌张——RevokeMsgPatcher 的开源作者替所有"晚一步看到消息"的人写过一句注解:"我已经看到了,撤回也没用了。"安装它、验证它、保留好原始备份,然后安心继续聊天。重要的不是跟谁较劲,而是让值得记住的内容,真的留下来。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考