wx-dump-mac
April 21, 2026 · View on GitHub
macOS 微信聊天记录导出工具 — 本地解密并浏览你的微信聊天记录。
macOS WeChat data export tool — decrypt and browse your WeChat chat history locally.
免责声明: 本工具仅供个人数据备份使用。请尊重他人隐私,遵守相关法律法规。
⚠️ 注意: 使用本工具需要对微信进行重签名(
codesign),这会导致微信的截图、屏幕录制等系统权限失效。使用完毕后请参考文档末尾的恢复指南还原。
功能
- 密钥提取 — 自动从微信进程内存中提取加密密钥
- 数据库解密 — 解密微信 SQLCipher 数据库(支持 pysqlcipher3、sqlcipher CLI 和原生 AES-CBC)
- 聊天浏览 — 浏览聊天记录,支持文字、图片、语音、视频、表情等消息类型
- 联系人管理 — 查看联系人列表,含头像占位和消息数统计
- 数据导出 — 支持导出为 HTML、JSON、CSV 或批量 ZIP 压缩包
- 统计分析 — 消息统计、热门联系人、每日活跃度、消息类型分布
- 版本支持 — 同时支持微信 3.x 和 4.x macOS 版本
环境要求
- macOS 10.15+(Catalina 或更高版本)
- Python 3.9+
- Node.js 16+(用于构建前端,若
web/dist/已存在则可选) - Xcode 命令行工具(
xcode-select --install) - GNU coreutils(
brew install coreutils) - macOS 版微信(提取密钥时需要运行)
快速开始
git clone https://github.com/tomqiaozc/wx-dump-mac.git
cd wx-dump-mac
chmod +x start.sh
./start.sh
打开浏览器访问 http://localhost:8899,按照设置向导操作。
手动安装
1. 重签名微信(仅需一次)
提取密钥前,需要对微信进行重签名以允许内存访问:
sudo codesign --force --deep --sign - /Applications/WeChat.app
重签名后需要重启微信。
2. 安装 Python 依赖
python3 -m venv venv
source venv/bin/activate
pip install -r py/requirements.txt
提示: 后续所有
python/pip命令都需要先激活虚拟环境。每次打开新终端需运行source venv/bin/activate。
3. 编译密钥提取工具
cd tools
make
cd ..
4. 构建前端(可选)
cd web
npm install
npm run build
cd ..
5. 提取加密密钥
确保微信正在运行,然后:
cd /path/to/wx-dump-mac
sudo ./tools/find_keys_macos
会在当前目录生成 all_keys.json,包含每个数据库的加密密钥。
6. 启动服务
source venv/bin/activate
python main.py
打开 http://localhost:8899,按照设置向导操作。
工作原理
- 微信使用 SQLCipher 加密聊天数据库
- 加密密钥保存在微信进程内存中
- 本工具扫描内存找到密钥,然后解密数据库
- 通过 Web 界面浏览和导出聊天记录
项目结构
wx-dump-mac/
├── py/ # Python 后端
│ └── wxdump_mac/
│ ├── api/ # FastAPI 服务器 & 路由
│ ├── core/ # 密钥提取、解密、路径检测
│ ├── db/ # 数据库处理(消息、联系人、媒体)
│ └── analyzer/ # 统计分析
├── web/ # Vue 3 + Element Plus 前端
│ └── src/
│ ├── views/ # Setup, Chat, Contacts, Statistics, Export
│ └── api/ # API 客户端
├── tools/ # C 密钥提取工具
│ ├── find_keys_macos.c # 内存扫描器
│ └── Makefile
├── tests/ # 测试套件(62 个测试)
├── main.py # 入口文件
└── start.sh # 一键启动脚本
安全说明
- 密钥仅在本地提取,不会发送到任何服务器
- 所有数据处理都在本机完成
- 工具需要 sudo 权限访问进程内存
常见问题
task_for_pid failed
- 使用
sudo运行 - 确保微信已重签名:
sudo codesign --force --deep --sign - /Applications/WeChat.app - 重签名后重启微信
- 在系统设置 → 隐私与安全性中授权开发者工具权限
pysqlcipher3 安装失败
pysqlcipher3 是可选的。工具可以使用 sqlcipher CLI 或内置的 AES-CBC 解密:
brew install sqlcipher # 可选,CLI 后端
pip install pycryptodome # AES-CBC 后端(推荐)
找不到数据库
- 确保微信已登录且有聊天记录
- 检查数据路径是否存在:
~/Library/Containers/com.tencent.xinWeChat/
开发
# 激活虚拟环境
source venv/bin/activate
# 后端开发
python main.py
# 前端开发(热更新)
cd web && npm run dev
# 运行测试
PYTHONPATH=py python -m unittest discover -s tests -v
API 文档
启动服务后访问 http://localhost:8899/docs 查看 Swagger 交互式文档。
| 接口 | 方法 | 描述 |
|---|---|---|
/api/version | GET | 获取版本信息 |
/api/wechat_status | GET | 检查微信运行状态 |
/api/extract_keys | POST | 提取加密密钥 |
/api/init | POST | 初始化(解密 + 合并数据库) |
/api/user_list | POST | 获取联系人列表 |
/api/msg_list | POST | 获取消息列表 |
/api/export_csv | POST | 导出为 CSV |
/api/export_json | POST | 导出为 JSON |
/api/export_html | POST | 导出为 HTML |
/api/export_all | POST | 批量导出为 ZIP |
/api/statistics | POST | 获取统计数据 |
贡献
欢迎贡献!请:
- Fork 本仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交修改(
git commit -m 'Add amazing feature') - 推送分支(
git push origin feature/amazing-feature) - 创建 Pull Request
致谢
本项目基于 wx-dump-plus(baiyajin),适配 macOS 平台并支持微信 4.x 原生密钥提取。
恢复微信原始签名
使用本工具需要对微信重签名,这会导致截图、屏幕录制等系统权限失效。导出完成后,按以下步骤恢复:
方案一:重新安装微信(最简单)
- 删除微信:将
/Applications/WeChat.app拖到废纸篓 - 从 Mac App Store 或官网重新下载安装
- 打开微信,系统会重新请求权限,点击授权即可
方案二:重置系统权限(推荐)
- 打开 系统设置 → 隐私与安全性 → 屏幕录制
- 移除微信,再重新添加
- 如果无效,在终端执行:
tccutil reset ScreenCapture com.tencent.xinWeChat
- 重新打开微信并授权
提示:恢复原始签名后,
find_keys_macos将无法提取密钥。需要再次导出时,重新执行重签名步骤即可。