微信4.0改名weixin.dll导致补丁失效?3步用RevokeMsgPatcher找回防撤回
微信4.0改名weixin.dll导致补丁失效?3步用RevokeMsgPatcher找回防撤回
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
微信4.0升级后,不少人的微信防撤回功能悄悄失效了,RevokeMsgPatcher工具提示找不到目标文件。原因只有一个:微信4.0把核心文件WeChatWin.dll改名为Weixin.dll,而防撤回补丁修改的正是这个文件。修复不需要太久,把工具换到2.0及以上版本,关闭微信后重新打补丁,防撤回即可恢复。RevokeMsgPatcher是支持PC版微信/QQ/TIM的防撤回补丁工具,下面先讲清失效原因,再给出操作步骤。
防撤回为什么突然失效
补丁靠修改微信的核心文件起作用,4.0之前的微信,这个文件叫WeChatWin.dll。4.0版本做了两件事:
- 把WeChatWin.dll改名为Weixin.dll,安装注册表项也从Wechat变成了Weixin,安装目录相应挪到了Tencent\Weixin路径下;
- 旧版RevokeMsgPatcher按老规矩去找WeChatWin.dll,自然找不到,补丁也就打不上。
所以问题不是防撤回功能本身坏了,而是它要找的文件被改名了,路径匹配逻辑失效。
上图是调试器里加载的旧版WeChatWin.dll,旧防撤回补丁修改的就是它,4.0里它已经改名。
防撤回原理:改几个字节就够了
RevokeMsgPatcher本质上是个十六进制编辑器,它的工作是在DLL里找到特定字节并替换。特征是怎么找到的?大致两步。
用字符串定位撤回函数
微信文件里有一段"revokemsg"字符串,它指向消息撤回相关的代码。在调试工具里做字符串搜索输入这个关键词,就能列出所有和撤回相关的代码位置。
改一条指令改变结果
定位到的代码里有关键的条件跳转:je是"条件满足才跳转"的指令,满足条件时就会执行"把消息撤掉"这段逻辑。把je改成jmp(无条件跳转)或替换对应特征字节,程序就会跳过撤回判断,消息不再被撤回。
把修改写进文件
内存里的指令改动必须落盘。在调试器里选中修改的偏移量,点"修补文件",这几个字节就被永久写进磁盘上的WeChatWin.dll。RevokeMsgPatcher把上面这些步骤全部自动化了,普通用户不需要手动操作。
3步找回防撤回功能
✅换工具:2.0及以上版本已加入对Weixin.dll的支持,下载最新发行版,或克隆源码:
git clone https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher关微信:打补丁前必须完全退出微信客户端,文件被占用就写不进去。
管理员运行:右键以管理员身份运行RevokeMsgPatcher,选择微信安装路径(安装版通常会自动从注册表读取,绿色版需手动选),勾选防撤回功能后点击安装。之前打过旧补丁的话,可先点"备份还原"把文件恢复原样再重打。
⚠️ 两点注意:打补丁会修改微信文件,杀毒软件可能弹出警告,放行即可;微信每次更新后文件被替换,旧补丁会失效,需要重新安装补丁。
想自己适配可以看这些源码
对开发者来说,适配逻辑集中在几个文件里:
- WeixinModifier.cs 是新版适配器,负责从Weixin注册表项找安装路径、读取Weixin.dll的版本号;
- WechatModifier.cs 是旧版适配器,对应WeChatWin.dll和Wechat注册表项;
- App.cs 是模型类,保存每个应用的待修改文件列表与特征修改信息;
- RevokeMsgPatcher.Assistant/Data/ 目录存放各工具版本的patch.json,里面就是"搜什么字节、换成什么字节、适用哪个版本范围"。
以2.1的patch.json为例,Weixin.dll的"防撤回"特征按版本区间划分:4.0.0.0~4.1.0.0、4.1.0.0~4.1.0.17,一路排到4.1.12.0以上。本地微信版本落在哪个区间,就用哪组特征。适配新微信版本,本质就是给这里加一段新的版本区间和特征字节。
微信版本和工具版本对照
| 微信版本 | 补丁目标文件 | 需要的工具版本 | 实际效果 |
|---|---|---|---|
| 3.x及以下 | WeChatWin.dll | 任意版本 | 正常 |
| 4.0及以上(含4.0.3.36) | Weixin.dll | 1.9及以下 | 打不上补丁 |
| 4.0及以上(含4.0.3.36) | Weixin.dll | 2.0及以上(当前2.1) | 正常 |
打不上补丁时,先在微信"设置"里核对版本号,再对照上表确认工具版本是否够新。
注意事项与高频疑问速查
补丁突然没用了?大概率是微信自动更新了,文件被替换,重新打一遍补丁即可。
能不能把Weixin.dll手动改回WeChatWin.dll?⚠️ 不要。文件名、大小、哈希都是微信校验的一环,改名可能导致微信无法启动。
杀毒软件一直报警怎么办?属正常现象,补丁就是在改写微信文件的字节,把工具加入信任列表或临时放行。
系统有要求吗?需要Windows 7或更高版本,并安装.NET Framework 4.5.2及以上,低于此版本打开程序可能无反应或直接报错。
项目采用GPLv3协议开源,微信每次大改文件结构后,社区都会跟进更新特征数据,跟进工具版本更新是最省事的做法。
【免费下载链接】RevokeMsgPatcher:trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)项目地址: https://gitcode.com/GitHub_Trending/re/RevokeMsgPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
