wechat-decrypt-contributors
微信数据工具箱 / WeChat Decrypt Toolkit:本地数据库解密、实时监听与智能回复工作台。(说人话:微信AI回复)
在 GitHub 上查看 →README
微信数据工具箱 / WeChat Decrypt Toolkit
本项目在 Windows 本机读取和解密微信 4.x 数据库,提供实时消息监听、图片解密、聊天查询、AI 回复草稿和受控桌面自动发送。
This Windows-only toolkit reads and decrypts local WeChat 4.x databases and provides real-time monitoring, media decoding, chat queries, AI reply drafts, and controlled desktop sending.
------
中文说明
功能概览
所有本地服务只监听 127.0.0.1,不会开放给局域网。项目不会修改微信原始数据库。
两个网页入口
启动完整工作台后使用:
| 入口 | 地址 | 用途 |
| ------------ | ------------------------------------------------------------ | --------------------------------------------------- |
| 自动发送平台 | http://localhost:5678/#automation | 会话、AI 草稿、白名单、发送规则、演练和真实发送控制 |
| 监听后台 | http://localhost:5680/ | 查看监听核心收到的新消息和 SSE 状态 |
5678 是日常使用的主界面;5680 主要用于确认监听核心是否正常。
已验证环境
当前版本已在以下环境实际运行:
| 项目 | 版本 |
| ---------- | ------------------------------ |
| Windows | Windows x64 |
| 微信桌面版 | 4.1.12.55,进程名 Weixin.exe |
| Python | 3.12.13 x64;支持 Python 3.10+ |
| 浏览器 | Chrome、Edge 或其他现代浏览器 |
微信升级可能改变数据库或内存结构。如果你的微信版本不同,建议先使用测试账号验证。
1. 下载项目
``powershell`
git clone https://github.com/2933684073/wechat-decrypt-contributors.git
cd wechat-decrypt-contributors
也可以在 GitHub 点击 Code → Download ZIP,解压后进入项目目录。
2. 安装 Python 依赖
推荐使用独立虚拟环境:
`powershell`
python -m venv .venv
Set-ExecutionPolicy -Scope Process Bypass
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
验证依赖:
`powershell`
python -c "import Crypto, zstandard, win32crypt, win32clipboard; print('依赖正常')"
3. 找到微信数据库目录
微信 4.x 的数据库目录通常类似:
`text`
<微信文件目录>\xwechat_files\<你的 wxid>\db_storage
正确目录中通常可以看到:
`text`
session\session.db
contact\contact.db
message\message_0.db
message\message_resource.db
如果找不到,可以在磁盘中搜索 session.db。不要选择本项目生成的 decrypted 目录。
4. 配置项目
`powershell`
Copy-Item config.example.json config.json
notepad config.json
示例:
`json`
{
"db_dir": "D:\\WeChatData\\xwechat_files\\your_wxid\\db_storage",
"keys_file": "all_keys.json",
"decrypted_dir": "decrypted",
"decoded_image_dir": "decoded_images",
"wechat_process": "Weixin.exe"
}
JSON 中的 Windows 路径必须使用双反斜杠 \\。
5. 提取数据库密钥
先启动并登录微信,打开几个最近会话,然后:
1. 右键 01_extract_keys_as_admin_with_log.cmd;find_all_keys.output.log
2. 选择 以管理员身份运行;
3. 等待扫描完成;
4. 查看 ;OK: session\session.db
5. 确认日志中至少出现 。
微信 4.1+ 会优先使用只读 Config.Cipher runtime 扫描。每个密钥都必须通过数据库第一页 HMAC 校验后才会写入 all_keys.json。
如果旧版扫描显示 0 hex模式,不一定是失败;应查看最终有多少条 OK:。提取器会保留仍然有效的旧密钥,也不会用空结果覆盖可用的密钥文件。
6. 初次解密数据库
`powershell`
.\.venv\Scripts\python.exe decrypt_db.py
或直接运行 02_decrypt_and_start_web.cmd。
解密结果保存在 decrypted。该目录包含聊天数据,不要上传或分享。
7. 启动完整工作台
`powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\start_workspace.ps1
`
也可以双击 05_start_workspace.cmd。
启动脚本会依次启动:
:监听核心,端口 5680;:自动发送与 AI 工作台,端口 5678。只有监听核心成功启动后,工作台才会继续启动。出现问题时请查看:
`text
monitor_core.stdout.log
monitor_core.stderr.log
workspace.stdout.log
workspace.stderr.log
`
8. 验证实时监听
打开 监听后台,页面应显示正在等待新消息。
让另一个账号给当前微信发送一条新消息。新消息应同时出现在:
监听后台; 主工作台;。监听核心会把启动时已有消息作为基线,因此不会把所有旧消息重新推送一遍。请使用启动后收到的新消息测试。
9. 配置 AI 回复
打开 http://localhost:5678,点击 设置中心:
1. 填写 OpenAI 兼容模型服务地址;
2. 填写 API 密钥;
3. 点击 检测 获取模型;
4. 选择或填写模型名称;
5. 设置回复风格、语气和上下文数量;
6. 建议开启 仅未读来信触发;
7. 点击 测试连接;
8. 保存设置。
API 密钥使用当前 Windows 用户的 DPAPI 加密保存,不会在网页中回显明文。
10. 配置自动发送平台
打开 自动发送平台,或在左侧点击 自动化管理。
#### 10.1 添加白名单
在左侧联系人列表中选择允许自动回复的私聊联系人,然后点击 保存全部规则。只有私聊联系人可以加入白名单,群聊不会自动回复。
#### 10.2 设置发送规则
建议首次测试使用:
| 设置 | 建议值 |
| -------------- | --------------------- |
| 白名单 | 只选择 1 个测试联系人 |
| 联系人冷却 | 30 秒或更长 |
| 统计窗口 | 300 秒 |
| 窗口内最多发送 | 1 条 |
| 敏感词拦截 | 开启 |
| 演练模式 | 开启 |
#### 10.3 自动发送按钮在哪里
自动发送开关位于:
> 自动化管理 → 运行方式 → 启用自动发送模块
在同一个 运行方式 区域中还有:
只勾选“启用自动发送模块”不会立即开启真实发送。默认仍处于演练模式。
11. 校准微信发送坐标
真实发送前必须校准:
1. 保持微信主窗口可见,并固定窗口位置和大小;
2. 双击 07_calibrate_sender.cmd;wechat_sender_calibration.json
3. 按提示记录微信搜索框中心;
4. 记录搜索结果第一项中心;
5. 记录消息输入框中心;
6. 完成后生成 。
校准程序只读取鼠标坐标,不会点击或发送消息。更改分辨率、缩放比例、显示器或微信窗口布局后,需要重新校准。
12. 从演练切换到真实发送
请按顺序操作:
1. 白名单只保留一个测试联系人;
2. 在 自动化管理 → 运行方式 中勾选 启用自动发送模块;
3. 保持 演练模式 开启并保存;
4. 让测试联系人发送一条普通文本;
5. 确认工作台生成了草稿,服务记录显示“演练”,微信没有发送;
6. 完成坐标校准;
7. 回到 自动化管理 → 运行方式,关闭 演练模式 并保存;
8. 在右侧 自动发送控制 中点击 解锁真实自动发送;
9. 确认安全提示;
10. 再发送一条测试消息,检查联系人和回复是否正确。
真实自动发送必须同时满足:
系统会从 3 条 AI 草稿中选择第一条发送。
13. 立即急停
如果联系人、坐标或回复有任何异常,立即点击右侧的 立即急停。
急停后,后续消息不会真实发送,真实发送解锁状态也会被清除。恢复时必须先点击 恢复演练,完成演练验证后才能再次解锁。
14. 运行截图
15. 停止服务
双击 06_stop_workspace.cmd。脚本会按当前监听端口查找服务,避免因为 PID 被 Windows 复用而结束无关程序。
16. 常见问题
#### 5678 打不开
`powershell
Get-NetTCPConnection -State Listen -LocalPort 5678,5680
Get-Content .\monitor_core.stderr.log -Tail 80
Get-Content .\workspace.stderr.log -Tail 80
`
如果 5680 没有启动,5678 也无法获得实时消息。
#### 能看到会话,但没有新消息
请使用另一个账号发送一条启动后到达的新消息。旧会话只用于加载联系人列表,不会全部重新进入实时记录。
#### 能生成草稿,但不发送
重点检查:
#### 自动发送点错位置
立即急停,恢复演练,固定微信窗口后重新校准。当前实现会搜索联系人显示名并点击第一条结果,因此不要为重名联系人开启真实自动发送。
#### 图片无法预览
文字监听只依赖 session 数据库。图片预览还需要消息资源密钥和图片密钥;可根据日志提示运行 find_image_key.py。
17. 主要文件
| 文件 | 用途 |
| -------------------------------- | ---------------------------------- |
| find_all_keys.py | 从微信进程只读提取并校验数据库密钥 |decrypt_db.py
| | 解密微信数据库 |monitor_web_core.py
| | 5680 实时监听核心 |wechat_workspace.py
| | 5678 AI 与自动发送工作台 |wechat_sender.py
| | 受控微信桌面发送层 |calibrate_wechat_sender.py
| | 发送坐标校准 |mcp_server.py
| | 为本地 AI 客户端提供查询接口 |decode_image.py
| | 解密微信图片 |docs/USER_GUIDE_ZH.md
| | 更完整的中文使用与排错说明 |docs/CONTRIBUTOR_ONBOARDING.md
| | 贡献者开发指南 |
18. 隐私与安全
以下内容绝不能提交到 GitHub:
;;;