Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeChat CLI Next

面向 Windows 微信 4.x 的本地、离线、只读聊天记录 CLI。

它负责发现本机微信账号、验证数据库密钥、读取加密数据库和已提交的 WAL 消息,并向脚本或 AI 智能体输出结构化结果。微信无需退出,源数据库、WAL 和 SHM 文件不会被修改。

想让 Claude Code 或 Codex 直接总结群聊? 使用配套项目 WeChat Summary Skill

为什么做这个项目

微信 4.1+ 不再保留旧工具寻找的 x'<raw-key><salt>' 形式密钥,而是在进程中使用 master passphrase,并为每个数据库独立派生 key。旧版导出工具因此可能找不到密钥,也通常无法安全读取正在增长的 WAL。

WeChat CLI Next 将密钥验证、逐库解密、实时快照和聊天查询组合为一个可审计的只读接口,既可供人使用,也适合作为 AI 智能体的数据层。

主要能力

  • 自动发现本机微信账号和数据目录。
  • 捕获并验证微信 4.1+ master passphrase。
  • 使用 Windows DPAPI 保存密钥,配置文件不含明文。
  • 为每个数据库派生独立 key,并逐页校验 HMAC。
  • 查询会话、聊天历史和全文关键词。
  • 合并主数据库与 WAL 中最后一个完整提交之前的页面。
  • 一条 context 命令输出适合 Claude Code、Codex 和其他工具消费的 JSON。
  • 自动匹配群名、识别本人消息并解析群成员显示名。

项目分工

项目 职责
WeChat CLI Next 可靠、只读地获取本地聊天数据,并输出结构化 JSON
WeChat Summary Skill 让 Claude Code/Codex 自动查询并总结群聊

CLI 不负责调用大模型,Skill 不直接处理数据库。两层可以独立更新,也方便审计隐私边界。

当前验证状态

已在 Windows 微信 4.1.12.26 上完成端到端验证:

  • 识别 5 个微信进程和 23 个加密数据库。
  • 捕获 32 字节 master passphrase,并通过真实 message_0.db HMAC 验证。
  • 派生逐库 key,校验并解密 23/23 个数据库。
  • sessioncontactmessage_0..2 和 FTS 索引完成查询。

其他微信版本可能需要额外适配,欢迎提交可复现的问题报告,但不要上传数据库、密钥或私人聊天记录。

安装

需要 Windows 10/11 和 Python 3.10+:

git clone https://github.com/Sixtimenight/wechat-cli-next.git
cd wechat-cli-next
py -m pip install -e .

安装后:

wxnext --help

未安装到 PATH 时,也可以在仓库根目录使用 .\wxnext.cmd

初始化与诊断

诊断指定数据目录:

wxnext diagnose --data-dir "D:\微信\xwechat_files\wxid_xxx\db_storage"

首次密钥捕获通过经过静态审核的调试器后端完成:

wxnext capture `
  --data-dir "D:\微信\xwechat_files\wxid_xxx\db_storage" `
  --backend-script "D:\path\to\audited-backend.py"

程序会拦截后端输出,对真实数据库执行 HMAC 验证,再用 DPAPI 保存已验证的 passphrase。后续查询不再依赖调试器。

查询

一键获取 AI 上下文

context 会自动发现账号、模糊匹配群名、识别本人消息,并默认返回最近 24 小时、按时间正序排列的结构化上下文:

wxnext context "产品交流群"
wxnext context "产品交流群" --since 7d
wxnext whoami

实时会话、历史和搜索

wxnext sessions --live --limit 20
wxnext history --live --chat "群名或用户名" --limit 200
wxnext search --live --text "关键词" --limit 100

--live 会只读复制当前主库,校验 WAL header、frame checksum、salt 和事务提交标记,并覆盖最后一个完整提交之前的页面。

查询已解密目录

wxnext decrypt-all `
  --data-dir "D:\微信\xwechat_files\wxid_xxx\db_storage" `
  --output "D:\path\to\decrypted"

wxnext sessions --root "D:\path\to\decrypted"
wxnext history --root "D:\path\to\decrypted" --chat "群名或用户名"
wxnext search --root "D:\path\to\decrypted" --text "关键词"

若本机存在多个账号,可显式传入 --data-dir

实时边界

实时快照默认保存在 %USERPROFILE%\.wxnext\live。它只包含已提交到数据库主文件或 WAL 完整事务中的消息;仍停留在微信进程内存、尚未提交的内容不可见。

安全设计

  • 所有数据库查询均为只读操作。
  • 不发送消息,不修改微信账号状态。
  • verify-key 默认从标准输入读取密钥,避免进入命令历史。
  • 程序只报告验证结果和不可逆指纹,不打印原始密钥。
  • 已验证 passphrase 使用当前 Windows 用户的 DPAPI 保护。
  • 不执行或分发无源码、未签名的 wx_key.dll

本工具只应用于你本人有权访问的本地数据。发布日志或问题报告前,请移除账号 ID、数据库路径、群名和聊天正文。

技术说明

微信 4.1+ 每个数据库的实际 key 为:

PBKDF2-HMAC-SHA512(master_passphrase, db_salt, 256000)

项目实现逐库派生、页级 HMAC 校验,以及 WAL header、salt、checksum 与提交边界验证。

开源研究致谢

  • Tencent/WCDB:WCDB 配置与 SQLCipher 实现。
  • TANGandXUE/wcdb-key-tool:4.1+ master passphrase 与逐库派生思路(MIT)。
  • labazhou2024/chatlog-keeper:Windows key-set 调试器原型(MIT)。

License

MIT

About

Local, offline, read-only CLI for Weixin 4.x chat databases with live WAL support.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages