Skip to content

Repository files navigation

微信防撤回 for macOS

一个面向普通用户的 macOS 微信 4 工具:保留被撤回的消息,也支持自定义提示、微信多开、屏蔽自动更新和一键还原。

下载最新版 · 遇到问题 · 进阶用法

使用前先看

  • 目前仅支持 Apple Silicon(M 系列)Mac
  • 安装前请先完全退出微信
  • 工具会修改微信 App,但每次安装都会自动保留备份,可以随时还原。
  • 如果微信升级后防撤回消失,通常重新检测并安装一次即可。

它能做什么

你想要的效果 对应功能
别人撤回后,消息仍留在聊天里 静默防撤回
显示“谁在什么时候撤回了什么” 自定义提示
避免微信自动升级后覆盖补丁 屏蔽自动更新
同时登录多个微信账号 微信多开
回到修改前的原版微信 恢复 / 卸载

普通用户只需要使用图形界面,不需要打开终端,也不需要理解补丁地址或构建参数。


3 分钟完成安装

1. 下载 App

打开 Releases,下载最新的 .dmg,然后把「微信防撤回」拖进「应用程序」。

2. 第一次打开

在「应用程序」中找到「微信防撤回」,右键 → 打开 → 再次确认打开

如果直接双击后提示无法验证开发者,使用上面的右键打开方式即可。

3. 退出微信

安装补丁前,需要完全退出微信:

  1. 在 Dock 中右键微信图标。
  2. 选择「退出」。
  3. 确认工具左下角显示 “微信已退出”

4. 检测当前版本

打开「微信防撤回」后,首页会自动显示:

  • 当前微信版本和构建号;
  • 这个版本是否受支持;
  • 防撤回是否已经开启。

如果显示“暂不支持”,先进入 「检查更新」→「拉取最新补丁数据」,然后返回首页重新检测。

5. 开启防撤回

在首页点击 「开启防撤回」,按提示完成授权。安装成功后重新打开微信。

第一次使用时,建议让另一个账号发一条测试消息再撤回,确认原消息仍然保留。


我应该选择哪种模式

静默防撤回(推荐)

别人撤回消息后,原消息继续保留,不额外显示提示。适合只想安静保留消息的用户。

操作路径:首页 → 开启防撤回

自定义撤回提示

可以把微信原来的撤回提示替换成自己的文字,例如:

已拦截 {from} 于 {time} 撤回:{content}

支持的占位符:

占位符 显示内容
{from} 撤回消息的发送者
{time} 撤回时间,例如 23:18
{content} 文字内容,或 [图片][视频][语音] 等类型提示

设置方法:

  1. 打开 「自定义提示」
  2. 输入短语并查看预览。
  3. 首次使用时点击「保存并开启自定义提示」。
  4. 以后修改短语只需点击「保存并应用」,不会重复签名微信。
  5. 完全退出并重新打开微信。

如果页面提示无权读取已保存的短语,按页面按钮为本 App 开启「完全磁盘访问」,然后退出并重新打开本 App。

{content} 的完整内容预览目前只在构建号 269340、269341 上启用,并且只能读取本次微信启动后收到的消息。其他情况会自动省略内容,不会显示多余的冒号或空白。

屏蔽自动更新

微信升级通常会覆盖已经安装的补丁。可以在「高级安装」中同时打开 “屏蔽自动更新”

如果你希望继续正常接收微信更新,就不要开启这个选项;微信升级后重新安装防撤回即可。

微信多开

打开 「微信多开」,选择副本数量后点击「创建多开副本」。工具会在「应用程序」中创建 WeChat 1WeChat 2 等独立 App。

  • 每个副本通常需要单独登录。
  • 副本默认不会抢占微信网页链接。
  • 多开不会修改原始微信,也不依赖当前微信构建号。

恢复 / 卸载

每次安装前,工具都会把原文件保存在微信 App 内部。需要恢复时:

  1. 完全退出微信。
  2. 打开 「恢复 / 卸载」
  3. 选择要恢复的时间。
  4. 点击 「还原这一次」
  5. 重新打开微信。

恢复只会还原被修改的微信程序文件,不会删除聊天记录或账号数据。


检查更新

「检查更新」页面有两种更新:

补丁数据更新

用于支持新的微信构建号。文件很小,拉取后立即生效,不需要重新安装「微信防撤回」App。

适合以下情况:

  • 微信刚刚升级;
  • 首页显示“暂不支持”;
  • 安装时提示补丁数据不匹配。

应用更新

用于获取新的界面、功能、修复和运行时支持。自定义提示需要适配新版微信时,通常需要更新 App 本身。

普通用户使用发布页面中的最新版即可;「从源码构建」是为开发者准备的功能。


遇到问题

「微信防撤回」打不开

在「应用程序」中找到它,使用 右键 → 打开,不要直接双击。

没有检测到微信

确认微信安装在默认位置:

/Applications/WeChat.app

目前图形界面默认检测这个位置。

当前微信版本暂不支持

打开 「检查更新」→「拉取最新补丁数据」。更新后仍不支持,说明这个微信构建号还在适配中。

反馈问题时请附上首页显示的:

  • 微信版本;
  • 构建号;
  • macOS 版本;
  • 操作日志中最后几行错误。

安装时提示没有权限或 Operation not permitted

打开:

系统设置 → 隐私与安全性 → App 管理

允许「微信防撤回」修改其他 App。如果仍然失败,再到:

系统设置 → 隐私与安全性 → 完全磁盘访问权限

添加「微信防撤回」,打开开关后退出并重新打开工具再试。

安装后微信点了没反应

CLI 会在修改签名前自动保存微信主程序、Helper 和扩展的 entitlements,重签名后逐项比对;如果麦克风、摄像头、网络、沙盒或扩展权限有任何一项丢失,安装会直接报错而不会把签名步骤标记为成功。

重新签名仍然是 ad-hoc 签名,原厂的 Developer ID 身份会改变。新版 macOS 仍可能阻止重新签名后的微信访问自己的数据目录。处理方法:

  1. 打开 系统设置 → 隐私与安全性 → 完全磁盘访问权限
  2. 点击 +,添加 /Applications/WeChat.app
  3. 打开微信旁边的开关。
  4. 重新打开微信。

如果列表里已经有微信,先用 删除,再重新添加。微信升级或重新安装补丁后,偶尔需要再做一次。

安装时提示微信仍在运行

先完全退出微信再安装或恢复。不要在微信运行时修改程序文件,否则系统可能直接关闭微信进程。

微信升级后防撤回消失

这是正常现象,微信升级会替换已经修改的文件:

  1. 打开「微信防撤回」。
  2. 拉取最新补丁数据。
  3. 确认新构建号已受支持。
  4. 退出微信并重新安装。

安装成功,但真实撤回没有生效

先确认:

  • 微信已经完全退出并重新打开;
  • 测试的是别人撤回的消息;
  • 当前构建号与首页显示一致;
  • 没有在安装后又升级微信。

然后展开底部的「查看详情」,保存最后一段日志并提交 issue。


常见问题

会上传聊天内容吗?

撤回内容匹配在微信进程本地完成,缓存只存在于当前进程。调试探针默认关闭;开启后会把撤回 XML 和相关元数据写入本机 macOS Console。

会影响我自己撤回消息吗?

自定义提示只处理别人撤回的消息。你自己撤回时仍使用微信原来的提示。

需要关闭 SIP 吗?

不需要。工具只修改「应用程序」中的微信,不修改 macOS 系统文件。

支持 Intel Mac 吗?

当前发布的 GUI 只支持 Apple Silicon(M 系列)Mac。

如何查看详细操作过程?

点击窗口底部的 「查看详情」,可以看到检测、安装、签名和恢复日志。


查看当前支持的微信构建号

工具按微信的内部构建号精确匹配。你不需要手动查找,GUI 首页会自动检测。

微信版本 构建号 静默防撤回 自定义提示 {content} 内容预览 屏蔽自动更新 历史多开补丁
较早构建 268575
较早构建 268596
较早构建 268597
较早构建 268599
较早构建 268601
较早构建 268602
较早构建 268831
4.1.10 268849
4.1.10 268850
4.1.10 268851
4.1.11 269077
4.1.11 269079
4.1.11 269110
4.1.12 269332
4.1.12 269333
4.1.12 269334
4.1.12 269338
4.1.12 269340
4.1.12 269341

说明:

  • ✅ 表示该构建号支持; 表示暂未支持。
  • {content} 内容预览包括文字原文以及 [图片][视频][语音] 等媒体类型。
  • 表中的“历史多开补丁”是旧式原地多开方式;GUI「微信多开」使用独立副本,不依赖构建号,所有版本都能使用
进阶用户:命令行

进阶用户命令行

普通用户不需要执行下面的命令。命令行适合开发、调试或自动化使用。

构建

swift build -c release
swift test

要求 macOS 12+、Swift 5.9+。

查看版本和支持状态

.build/release/wechat-antirecall versions --app /Applications/WeChat.app

只检查,不修改

.build/release/wechat-antirecall install --dry-run --app /Applications/WeChat.app

安装静默防撤回

sudo .build/release/wechat-antirecall install --app /Applications/WeChat.app

安装自定义提示并屏蔽更新

.build/release/wechat-antirecall tip-phrase set "已拦截 {from} 于 {time} 撤回:{content}"
sudo .build/release/wechat-antirecall install \
  --runtime-tip \
  --block-update \
  --app /Applications/WeChat.app

创建多开副本

sudo .build/release/wechat-antirecall clone \
  --count 2 \
  --output-dir /Applications \
  --app /Applications/WeChat.app

从备份恢复

sudo .build/release/wechat-antirecall restore \
  --binary Contents/Resources/wechat.dylib \
  --backup /Applications/WeChat.app/Contents/Resources/wechat.dylib.wechat-antirecall-backup-YYYYMMDD-HHMMSS \
  --app /Applications/WeChat.app

完整参数:

.build/release/wechat-antirecall help
开发者:从源码构建图形界面
bash Scripts/make-icon.sh
bash Scripts/make-app.sh
open dist/WeChatAntiRecall.app

底层实现、补丁配置、逆向记录、新构建适配方法和发布流程见 MAINTAINING.md


相关项目

友链

About

antirecall for macos wechat 4 or later

Resources

Stars

349 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages