尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

RevokeMsgPatcher 防撤回补丁:3 步让微信/QQ/TIM 撤回的消息不再消失

RevokeMsgPatcher 防撤回补丁:3 步让微信/QQ/TIM 撤回的消息不再消失 RevokeMsgPatcher 防撤回补丁3 步让微信/QQ/TIM 撤回的消息不再消失【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁我已经看到了撤回也没用了项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher一条消息刚发出去就被对方撤回聊天窗口里只剩一句对方撤回了一条消息。开源项目 RevokeMsgPatcher 给出的思路很直接既然消息是被程序逻辑撤掉的那就把这段逻辑在二进制层面改掉。这款 Windows 平台的消息撤回恢复工具即常说的微信防撤回教程里的主角通过修改微信、QQ、TIM 核心 DLL 中的几个字节让撤回操作彻底失效——被撤回的内容仍留在对话框里随时可看。消息已撤回带来的麻烦撤回功能本意是给用户纠错的机会但对某些场景并不友好工作沟通同事误发的敏感信息撤回后群里的讨论依据就断了翻记录找不到源头重要信息对方撤回的关键内容地址、金额、承诺无从追溯只能靠截图存证审计留痕需要完整沟通记录的场景里消失本身就是最大的问题。RevokeMsgPatcher 的定位就是把这些被撤回的消息钉在原地。它不是一个常驻进程而是一次性的文件修改工具——打完补丁后重启软件防撤回能力就随 DLL 生效。三步跑通微信防撤回补丁安装动手前的检查清单检查项要求操作系统Windows 7 及以上不支持 XP运行环境.NET Framework 4.5.2 或更高低于此版本打开程序可能无反应或直接报错运行权限以管理员身份运行 RevokeMsgPatcher目标软件微信/QQ/TIM 必须完全退出包括后台进程操作顺序获取工具从 Releases 下载最新版当前补丁库版本为 2.1解压即用自动定位路径安装版微信/QQ/TIM 一般能被自动从注册表读出来绿色版需要手动指定安装目录点击防撤回界面可能会有一段时间无响应属于正常现象等它扫完字节再动。打补丁的过程本质是改写WeChatWin.dll或IM.dll杀毒软件很可能弹出警告放行即可。打完之后的两个动作重新启动目标软件验证撤回的消息是否照常显示记住一条铁律软件更新后必须重新打补丁官方说明里特意加粗强调了这一点。防撤回补丁内部到底改了什么先找到 revokeMsg再改一个字节补丁不是乱改的。以微信 4.0.3.36 为例工具会在Weixin.dll里搜索一段特征字节117,33,72,184,114,101,118,111,107,101,109,115,...其中114,101,118,111,107,101,109,115恰好就是 ASCII 字符revokeMsg——一个和撤回直接相关的字符串。整段特征确认位置后只需把开头的1170x75一条条件跳转替换成2350xEBJMP 无条件跳转235,33,72,184,114,101,118,111,107,101,109,115,...条件跳转被换成无条件跳转后要不要执行撤回处理的判断被绕过去了。不同版本的改法略有差异老版本微信常把1160x74JZ/JE 类条件跳转改成235个别更老的版本如 2.8.0.112还会把某一处字节直接换成1950xC3RET 返回指令让撤回处理函数提前退场。动手之前先对 SHA1每条补丁记录都带着两个哈希值。以WeChatWin.dll3.3.5.25 为例记录里写着修改前 SHA13e94753ccbc2799d98f3c741377e99bdae33b4cf修改后 SHA1ab98f83fc16674ac4911380882c79c3ca4c2fd71工具执行时会先计算目标文件当前的 SHA1 与SHA1Before比对一致才允许写入写完后再用SHA1After复核。这样能保证补丁只落在确认无误的文件上改错了也一目了然。两套版本匹配方式补丁库里其实并存两种描述修改点的方式精确改点老版本微信、QQ、TIM直接指定字节偏移例如IM.dll9.2.3.26592 在偏移371605处写入235,9,144,144,144——前两个字节是JMP 9后面三个1440x90NOP用来把原来的调用指令填平特征码搜索替换新版本通用给定Search/Replace字节串配合StartVersion/EndVersion划定版本区间让同一份规则覆盖一片相邻版本。匹配本身由 Matcher 模块 里的 Boyer-Moore 算法坏字符 好后缀双启发式完成ModifyFinder.cs 还负责交叉校验如果特征串搜不到、但替换后的串已存在会判定补丁已安装并提示取消勾选对应功能避免重复打补丁。防撤回版本支持对照软件被修改的文件补丁库覆盖情况v2.1微信 3.xWeChatWin.dll3.7 版本同时含WeChat.exe3.1.0.00 ~ 4.0.3.0另有 3.3.5.x、2.8.0.x 等老版本的精确改点微信 4.x新架构Weixin.dll4.0.0.0 起含 4.1.12.0 等新版QQBin\IM.dll9.0.4.23786 ~ 9.2.3.26592 精确改点9.1.6.00000 起、9.4.7.00000 起走特征码TIMBin\IM.dll3.0.0.00000 起含 3.4.0.00000 之后的规则QQ NTversions\{version}\resources\app\wrapper.node9.8.0.19000 起含 9.8.0.19306~19307 的规则QQ 轻聊Bin\IM.dll7.9.14308.0 / 7.9.14314.0完整的修改点清单就躺在 RevokeMsgPatcher.Assistant/Data/ 目录下从 0.7 一路排到 2.1每个小版本一份patch.json方便对照研究每个版本的具体改法。除了防撤回微信这一支还额外提供多开能力补丁规则里用144NOP和2330xE9近跳转替换互斥相关的指令同一账号多实例共存。规则中甚至区分了防撤回带提示(新)这种保留撤回提示、只阻止内容消失的温和模式。补丁失效排查速查杀毒软件拦截/文件被恢复工具修改的是WeChatWin.dll、IM.dll这类核心文件误报很常见。把工具加入信任再确认 DLL 没被还原。提示已经安装了对应功能的补丁说明特征串已搜不到、替换串已就位取消勾选该功能即可不用重复打。提示特征码匹配数不一致通常是部分功能已被打过或当前软件版本特征变了。先核对勾选的功能组合是最新版且特征失效的话等补丁库更新。补丁打完、软件能开但撤回照旧确认用的工具是最新版、目标版本在上面的支持表里然后重启软件再验证。改了想还原补丁会先把原文件备份成.h.bak见 FileHexEditor.cs 中的FileBakPath逻辑把备份拷回去即可恢复原状。软件刚更新更新后补丁必然失效重跑一遍流程这是最常见的防撤回突然没用原因。进阶源码结构与配套工具想深入的话整个工程按职责切得很清楚Modifier 模块每个 App 一个修改器——WechatModifier.cs、WeixinModifier.cs、QQNTModifier.cs 等负责找安装路径、组装修改点、执行写入Matcher 模块BoyerMooreMatcher.cs 与 FuzzyMatcher.cs 提供字节级搜索ModifyFinder.cs 负责判定该不该改、改没改过Model 模块ModifyInfo、Change、ReplacePattern、TargetInfo定义了补丁 JSON 的完整数据结构。仓库里还有一个独立子项目 RevokeMsgPatcher.MultiInstance/是一个通用的微信多开工具附带自己的进程管理逻辑ProcessUtil.cs。QQ NT 的补丁规则里还留有逆向笔记比如 9.8.0.19306 规则备注了重新定位msg_recall_worker.cc的HandleRecallSysMsg对做逆向分析的人是一份现成的路线图。项目以 GPLv3 协议开源早期方案源自 wechat_anti_revoke2.1 版本 QQ NT 特征来自 NTQQAntiRecall微信 4.0 之后的特征来自 BetterWX。下次再看到对方撤回了一条消息那部分内容会安安静静留在原地——而你只需要记住每次软件更新之后这个补丁要重新打一遍。【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁我已经看到了撤回也没用了项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表