
被撤回的消息还能救回来吗RevokeMsgPatcher 只动了 1 个字节【免费下载链接】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 干的活就是把这个判断掰弯。这就像你拆开一台老式座钟不去动它的外壳和齿轮只是把某一根卡住指针的弹簧拨到另一边——整台钟照常走唯独走到 12 点就停这个行为消失了。74 换成 EB防撤回的底层只有一步棋打开补丁数据你会看到这样一组配对修改前修改后含义74 xxEB xxJE相等才跳转→ JMP无条件跳转74对应的汇编指令是jejump if equal意思是如果满足条件就跳转去执行撤回处理EB是jmp意思是不管条件满不满足直接跳过去。RevokeMsgPatcher 做的就是把这两个字节悄悄互换让程序永远走假装没撤回的分支。这种改法最大的好处是只影响这一个判断点。它不去屏蔽整个撤回模块不去动界面上任何其他功能所以打补丁之后微信该聊天聊天、该收图收图唯一变化就是——撤回对你失效了。3 步把撤回变成过去式上手的过程比你想象的还要简单全程只有一个图形界面一个按钮。第 0 步先满足三个小前提系统是 Windows 7 或更高版本不支持 XP、已安装 .NET Framework 4.5.2 或以上、目标软件微信/QQ/TIM处于完全关闭状态。然后按下面的顺序操作以管理员身份运行 RevokeMsgPatcher.exe。程序启动后会尝试从右下角拉取最新的补丁数据稍等几秒。确认应用与路径。顶部选择你要处理的应用微信/QQ/TIM/QQNT安装版软件通常会从注册表自动带出安装路径绿色版、便携版则需要手动点击选择路径指向安装目录即可。点安装补丁。等待界面底部提示完成重新启动你的聊天软件试试让对方发一条消息再撤回——它会在你屏幕上原封不动地待着。这里有个容易忽略的细节打补丁前程序会自动为 DLL 创建一份备份文件名的后缀是.h.bak留在软件安装目录里。改坏了、版本升级了、或者哪天想恢复原样点一下备份还原就能一键回到初始状态。整个过程和给衣服打补丁一样先剪一块同样的布头存着再动手——错了也能拆线。从认版本到认特征它为什么不怕版本更新你可能会担心微信三天两头更新补丁岂不是每次都要失效这正是 RevokeMsgPatcher 设计里最有意思的部分。它内部有两套补丁策略分工明确精确匹配针对老版本通过文件的 SHA1 哈希值和版本号去数据库里找这个版本应该改哪个偏移地址。一旦对上号改动位置是写死的又快又准。特征码匹配针对新版本不再纠结具体版本号而是去 DLL 里搜索一段固定的机器码片段用63作通配符表示这里可以是任意值找到了就在原地替换。只要程序的核心逻辑结构没变哪怕版本号变了也能照样打上。这些补丁数据都存放在项目的RevokeMsgPatcher.Assistant/Data/目录下按版本号分文件夹最新的数据在 补丁数据目录。每条记录的结构大致是这样的{ 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: 多开 }Search是要在二进制文件里找的原始字节串Replace是替换后的结果Category标明这条补丁属于防撤回还是多开。这套逻辑的具体实现可以在 核心修改器源码 里看到。顺手解锁的隐藏技能微信多开如果说防撤回是让消息留下来那多开就是让账号多跑几个。微信默认只允许一个实例靠的是一个叫**互斥量Mutex**的系统对象——新启动的微信发现互斥量已被占用就默默退出。RevokeMsgPatcher 的多开补丁会改掉创建这个互斥量的入口逻辑让检查形同虚设。顺带一提项目里还附带了一个独立的 微信多开小工具采用运行时清理互斥句柄的思路理论上无视微信版本适合不想动 DLL 文件的用户。如果你已经用主程序打过多开补丁就不要再叠加使用这个工具了——微信本身已经支持多开重复操作反而容易出问题。想更深入从读懂一张补丁 JSON 开始如果你对改一个字节就能改变程序行为这件事产生了兴趣不妨从读补丁文件开始进阶。找一份旧版微信的补丁数据对照Position文件内偏移和Content要写入的字节再配合 x32dbg 这类调试器就能完整走一遍逆向的流程附加进程 → 定位WeChatWin.dll模块 → 搜索revokemsg相关字符串 → 顺着调用链找到那个条件跳转 → 手动改成jmp。这一步的操作细节项目 wiki 里的微信防撤回教程写得很完整本文不再展开。你只需要记住一个锚点所有版本的防撤回最终都收敛到让那个条件判断失效这一个动作上。理解了这一点剩下的都是找位置的功夫。打补丁前先看完这份避坑清单补丁失败、提示文件校验不通过八成是没关干净软件或者 DLL 之前被别的工具改过。先彻底退出微信/QQ任务管理器里确认进程没了再重试。提示已安装过此补丁说明文件已被修改过无需重复操作直接检查备份还原状态即可。杀毒软件报警由于要改写 DLL 文件部分安全软件会误报放行即可不放心的用户可以在打补丁前手动备份整个安装目录。软件升级之后微信/QQ 更新会覆盖 DLL补丁随之失效升级后需要重新运行工具再打一次。还原的时机如果当前软件版本和备份文件版本不一致还原前程序会弹窗确认看清楚再点确定。写在最后撤回的主动权应该在你手里回到开头那个下午——有了 RevokeMsgPatcher 之后同事撤回的排期表不会再消失客户反悔的报价条款也会老老实实留在聊天记录里。它不拦截、不破坏、不改变程序的其他任何行为只是在你和消息丢失之间立起了一道很轻的屏障。适合用它的人很清晰需要保存工作沟通记录的打工人、在意重要社交信息的普通用户以及想研究二进制修改原理的技术爱好者。安装它只需要三分钟而它守住的东西可能是一份方案、一次承诺或者一句再也不会重发的话。最后提醒一句本工具仅供技术研究与学习使用请遵守相关法律法规与软件使用协议别拿它去做不该做的事。想要从源码开始折腾可以 clone 仓库git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher用 Visual Studio 打开RevokeMsgPatcher.sln即可编译。【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁我已经看到了撤回也没用了项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考