WeChatTweak 实战指南:一条命令实现微信 macOS 撤回拦截、屏蔽自动更新与无限多开
WeChatTweak 实战指南:一条命令实现微信 macOS 撤回拦截、屏蔽自动更新与无限多开
【免费下载链接】WeChatTweakA command-line tool for tweaking WeChat - 首款微信 macOS 客户端撤回拦截与多开 🔨项目地址: https://gitcode.com/gh_mirrors/we/WeChatTweak
客户报价刚发就被秒撤回,工作号和个人号又没法同时在线——WeChatTweak 就是为这类场景做的:一条命令给微信 macOS 客户端打补丁,实现撤回拦截、屏蔽自动更新与无限多开,当前版本表覆盖 5 个微信版本号,双架构通用,AGPL-3.0 协议免费。
展开说,痛点有三层:工作群里,老板的通知被手滑撤回,等你反应过来,会话里只剩一句灰色提示;想再开一个微信登工作号,macOS 版默认单实例,前一个窗口直接被挤回登录页;更糟的是客户端可能半夜自动更新,更新完之前折腾好的环境全部清零。过去这三件事各查各的教程、各找各的工具,WeChatTweak 把它们收进同一条命令。
| 项目 | 内容 |
|---|---|
| 是什么 | macOS 微信客户端的命令行补丁工具 |
| 三大功能 | 拦截消息撤回 / 屏蔽自动更新 / 无限多开 |
| 实现方式 | 二进制级打补丁 + ad-hoc 重签名,无驻留进程 |
| 支持架构 | arm64(Apple Silicon)与 x86_64(Intel) |
| 当前支持微信版本 | 31927、32281、32288、31960、34371(来自仓库 config.json) |
| 系统要求 | macOS 12 及以上 |
| 协议 | AGPL-3.0,开源免费 |
5 分钟装好 WeChatTweak 并完成首次 patch
安装到跑通全程只需要四条命令:
brew install sunnyyoung/tap/wechattweak # 安装 wechattweak versions # 查看当前与支持的版本 wechattweak patch # 执行补丁,含重签名 wechattweak --help # 查看全部可用参数Homebrew 源不方便的话,也可以拉源码自己编,输出一个同时支持两种架构的通用二进制:
git clone https://gitcode.com/gh_mirrors/we/WeChatTweak-macOS cd WeChatTweak-macOS && make build跑通的判定标准:终端打印Done!,wechattweak versions里当前版本出现在支持列表中;重启微信后发一条消息测试撤回,消息不消失;连续打开两个微信,两窗口并存不被踢出。
整个工具不需要写一行代码:交互只有patch和versions两个子命令,外加可选的-a(WeChat.app 路径,默认/Applications/WeChat.app)和-c(配置表地址,默认仓库内置的官方表)。
为什么不搞运行时注入,直接改二进制文件
给 macOS App 改行为,业界常见做法是运行时注入:App 启动时塞一个 dylib(动态库),把关键函数 hook(钩子,即把函数入口替换成你的实现)掉。问题是常驻进程容易被系统校验盯上,App 一更新注入就可能失效,整套操作得重做。
WeChatTweak 的选择是直接改磁盘上的 WeChat.app 可执行文件:找到各功能对应的指令地址,覆写几节空操作指令,再用 ad-hoc 签名(macOS 本地生成的临时签名,不依赖证书链)重新签名让系统放行。人话翻译:不在运行时和 App 捉迷藏,直接把磁盘上的"课本"改掉,再补一张"临时签名"过系统检查。
实现上有四个细节:
- 先读版本号,再查表:Info.plist 里的
CFBundleVersion决定用哪套地址表,逻辑在 Command.swift,表数据在 config.json。人话翻译:先问 App"你是哪个版本",再拿对应的手术方案,不会打错位置。 - 两种架构,两套切片:WeChat.app 是 fat binary(一个文件里打包多个 CPU 架构的版本),Patcher.swift 解析 Mach-O(macOS 可执行文件格式)头后,对 arm64 和 x86_64 两个切片分别定位、分别写入。人话翻译:不管你的 Mac 是什么芯片,两边一起处理好。
- 重签名是流程的一部分:patch 后自动执行
codesign --remove-sign清掉原签名,再 ad-hoc 重签,最后xattr -cr移除隔离属性。人话翻译:字节一改签名就失效,重签加摘"嫌疑标记",App 才能正常打开。 - 侵入面极小:每个补丁点只写 8~10 个字节(即配置表
asm字段的十六进制机器码),本质是几节空指令替换原入口。人话翻译:手术切口很小,好审查也好回滚,重装即还原。
工程红利有两点:没有驻留进程,不占内存,微信重启不受影响;版本不匹配会直接报错退出,不存在静默失败让你误以为已经生效。
5 个微信版本的补丁点覆盖情况
以下数据全部来自仓库 config.json 的版本表与 README 的功能清单,没有额外修饰。
| 微信版本
【免费下载链接】WeChatTweakA command-line tool for tweaking WeChat - 首款微信 macOS 客户端撤回拦截与多开 🔨项目地址: https://gitcode.com/gh_mirrors/we/WeChatTweak
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考