macOS微信多开完整指南:WeChatTweak 一条命令上手
【免费下载链接】WeChatTweakA command-line tool for tweaking WeChat - 首款微信 macOS 客户端撤回拦截与多开 🔨项目地址: https://gitcode.com/gh_mirrors/we/WeChatTweak
工作和生活两个微信来回切换,太折腾?WeChatTweak 是一个 macOS 命令行工具,给微信客户端打补丁,实现多开,还顺带拦截消息撤回、关闭自动更新。
环境准备:4 项要求检查一遍
先确认四件事,缺一个后面都会卡住:
- macOS 12 及以上(项目 Package.swift 里声明的平台下限)
- 已安装 Homebrew
- 微信 macOS 客户端在默认位置
/Applications/WeChat.app - 能输入本机管理员密码,patch 需要写入
/Applications
安装步骤:Homebrew 一条命令装好
推荐走 Homebrew tap,装好后升级也方便:
# 安装 brew install sunnyyoung/tap/wechattweak # 后续升级 brew upgrade wechattweak备选方式是从源码编译:克隆https://gitcode.com/gh_mirrors/we/WeChatTweak仓库后执行make build,它会编译出 arm64 与 x86_64 双架构的wechattweak可执行文件,放进 PATH 即可使用。
方式一:wechattweak patch 给微信打补丁
patch子命令默认处理/Applications/WeChat.app,流程是读版本号、匹配补丁配置、写入字节、重新签名,中途会弹一次管理员密码框:
# 查看当前版本和所有支持的版本 wechattweak versions # 对默认路径的微信打补丁 wechattweak patch # 微信不在默认路径时,用 -a 指定实际位置 wechattweak patch -a ~/Downloads/WeChat.app输出走到Done!就是成功了。
方式二:启动第二个微信实例
补丁打完,微信不再阻止第二个实例,这是 macOS 微信多开最直接的落地方式:
# -n 表示允许打开应用的新副本 open -n /Applications/WeChat.app图形界面党也可以按住 Option 点 Dock 里的微信图标。两个实例各自独立登录,窗口和会话互不干扰。
典型使用场景:双号、客服与撤回拦截
- 工作/生活双号:主实例登工作号,再开一个登生活号,重要消息不再漏。
- 多客服账号:几个客户号并行跑,各窗口独立,不用来回登出登录。
- 撤回拦截:同一次 patch 会把消息撤回的处理函数一并短路,被撤回的内容你还能看到。
一句话讲清楚它做了什么
它不注入任何动态库,而是直接改写 WeChat 可执行文件里的几条指令:把"判断是否已有实例在运行"的检查函数短路成固定答案,撤回、自动更新入口同样处理,然后重新签名。微信启动后执行到的,就是打过补丁的代码。
关键代码走读:补丁是怎么写进去的
核心逻辑在 Patcher.swift。微信主程序是 Mach-O 二进制,工具先按 fat 头遍历各架构切片,再沿 load command 找到目标虚拟地址落在哪个 segment,换算出文件偏移后覆盖字节:
// 判断目标虚拟地址是否落在当前 segment 内 if vmaddr <= targetVA && targetVA < vmaddr + vmsize { // 虚拟地址 → 文件偏移 let fileOffset = sliceOffset + fileoff + (targetVA - vmaddr) try fh.seek(toOffset: fileOffset) try fh.write(contentsOf: patch) // 覆盖原指令 return }具体打哪里、写什么字节,全由 config.json 驱动。以 34371 版本的多开项为例:
{ "version": "34371", "targets": [ { "identifier": "multiInstance", "entries": [ { "arch": "arm64", "addr": "1001b82c4", "asm": "20008052C0035FD6" } ] } ] }这 8 字节是一条"条件跳转 + 返回"。对比同文件里 revoke 项,两者只差首字节20与00——条件位一翻转,实例检查从此总是得到"没有实例在运行"。
执行流程图:从 patch 到 Done
个性化配置:自定义微信路径与补丁清单
两个参数值得记住:-a指定微信路径,-c指定补丁清单,支持本地文件或远程地址,默认为项目仓库的 config.json。清单按版本组织,每条记录包含version和targets,target 里是identifier(功能名)加各架构的addr/asm。微信出了新版本,只要分析出新偏移,加一段配置就能支持,不用改代码。
快捷键集成:把多开变成一键操作
open -n这条命令非常适合封装成一键动作:Alfred 里新建 workflow,设个关键词触发open -n /Applications/WeChat.app;Raycast 里加一条自定义命令,效果一样。之后敲个快捷键就能拉起新实例,比翻 Dock 快得多。
与第三方工具联动
| 工具 | 用法 | 适合谁 |
|---|---|---|
| Alfred | workflow 封装 open -n | 关键词党 |
| Raycast | 自定义命令执行 open -n | 快捷键党 |
| LaunchBar | 快捷动作指向 open -n | Dock 重度用户 |
高频问题速查 ⚠️
| 现象 | 原因 | 解法 |
|---|---|---|
| Unsupported WeChat version | 版本不在支持列表 | 跑 wechattweak versions 查看 |
| 微信更新后多开失效 | 二进制被新版覆盖 | 重新执行 wechattweak patch |
| patch 时弹密码框 | 写 /Applications 需授权 | 输入管理员密码即可 |
| 打完补丁打不开微信 | 签名或隔离属性异常 | 重跑 patch,会自动重签并清 xattr |
性能与稳定性建议
- 每个实例都是完整进程,内存占用成倍增长,日常两三个实例比较舒服。
- 微信每次更新后必须重新 patch,否则增强功能会失效。
- patch 直接改写二进制,介意的话先备份一份
WeChat.app再动手。
安全与合规须知
- 改写客户端二进制可能违反软件服务条款,重要账号和企业环境请谨慎。
- 只从官方 Homebrew tap 或项目仓库获取工具,别用来路不明的"修改版"。
- 项目采用 AGPL-3.0 协议开源,补丁内容和逻辑全部公开可审计。
WeChatTweak 用二进制补丁代替动态库注入,一条命令拿下 macOS 微信多开,轻且透明。项目源码和补丁清单都在仓库里,遇到版本不兼容欢迎去提 issue。下期聊聊微信 macOS 的消息导出与自动化。
仅供技术交流与学习,请遵守相关软件使用协议和法律法规。
【免费下载链接】WeChatTweakA command-line tool for tweaking WeChat - 首款微信 macOS 客户端撤回拦截与多开 🔨项目地址: https://gitcode.com/gh_mirrors/we/WeChatTweak
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考