PC 端微信防撤回与多开 Patch
PC 端微信防撤回与多开 Patch
这是一个成果向教程,参考了一些网上的教程汇总而成。仅用于技术交流。
思路
- 撤回的英文 “recall”、”revoke”;多开猜测用了
mutex
- 用
notepad++
对所有文件进行搜索 - 对结果分析,定位到关键逻辑位于
WeChatWin.dll
文件中 - 附加到进程
- 选择对应模块
- 搜索关键字 “revoke”
- 下断点
- 调试
- 记录特征值(方便下次修改)
通过网上各位大牛的研究,我们已经知道一下信息:
- 撤回、限制多开的逻辑都位于
WeChatWin.dll
文件中 - 撤回相关的关键词
revokemsg
- 多开相关的关键词
WeChat_App_Instance_Identity_Mutex_Name
工具
调试
登录微信,这里登小号测试
打开 x32dbg
,将微信进程附加进去
微信进程已经附加,微信会进入假死状态,点不动是正常的
切换到符号选项卡,在左下角搜索 WeChatWin.dll
,双击 wechatwin.dll
进入 CPU 选项卡
进入后右键 搜索 -> 当前区域 -> 字符串
防撤回
直接搜索关键词 revokemsg
,然后双击第一个"revokemsg"
进入 (站在了巨人的肩膀上)
进入可以看到如下,该指令上一条是
1 |
|
je wechatwin.6EA62E1F
,je
是 jump if equal
,这条指令以下的框框(即 0x6ea62deb
地址到 0x6ea62e1f
地址间的指令)为撤回的逻辑。
跳过该逻辑,将 je
改成 jmp
,直接跳过;也可将 call
删掉或用 nop
填充
到这撤回功能就被我们跳过了
多开
搜索关键词 WeChat_App_Instance_Identity_Mutex_Name
,然后双击第一个L"WeChat_App_Instance_Identity_Mutex_Name"
进入
需要进行修改的是当前行的上面第一个出现的 push ebp
,为该程序的入口,启动的时候进行唯一性检查
将 push ebp
修改为 ret
即可,即把检查只开一个微信的功能直接 return
到这防多开也做好了
打 Patch
点击生成补丁的按钮,然后点击修补文件就可以得到修改后的 WeChatWin.dll
最后将原 WeChatWin.dll
备份一下,再将打过 Patch 的文件替换为原本的文件,就可以实现功能了
最后看看功能:
防撤回:
多开:
参考文章
PC 端微信防撤回与多开 Patch
https://52hertz.tech/2022/12/22/Wechat_revoke/