
新版微信不再缓存明文key,老工具全失效;调试器断点抓passphrase+PBKDF2派生+HMAC校验,Linux/macOS/Windows真机验证
wcdb-key-tool 是微信数据库(WCDB / SQLCipher4)密钥提取工具,覆盖 Linux / macOS / Windows 三平台——重点是它解决了微信 4.1+ 的密钥提取:新版微信不再在内存缓存明文 raw key,所有基于内存模式扫描的老工具全部失效,这个项目用"调试器断点抓 passphrase + PBKDF2 派生"的新路线跑通了三个平台。
为什么 4.1+ 老工具全失效
微信 4.1+ 只在内存里保留一个 passphrase,真正的加密密钥要做一轮很慢的 PBKDF2(256,000 轮 HMAC-SHA512)才能算出来。本工具的三步:
- 拿原料:老版本直接内存扫描;新版本在登录瞬间用调试器断点抓 passphrase(Linux 走 ELF 静态分析+GDB、macOS 断系统函数
CCKeyDerivationPBKDF、Windows 只读扫描Config.Cipher运行时对象) - 派生密钥:passphrase + 每个库自己的 salt → PBKDF2 → 32 字节 AES-256 密钥
- HMAC 校验防伪:派生出的密钥必须通过数据库第一页 HMAC 校验才算数——这是"有没有真的抓对"的唯一标准
特点
- 三平台均已真机验证(macOS 18/18 通过)
- 单文件零依赖:直接调系统加密库(Linux OpenSSL / macOS CommonCrypto / Windows CNG),不用 pip install 任何东西
- 版本自适应:微信更新后大概率仍能工作(Linux 靠字符串交叉引用自动适配,macOS 断的是系统函数与微信版本无关)
- 安全克制:只在密钥计算瞬间读一次内存/寄存器就 detach,不改微信行为、不碰网络通信,不会触发封号;passphrase 缓存在本地(权限 600)
- 只用于提取自己设备上自己账号的密钥,不做采集、不做批量
用法
# Linux(需 gdb)
sudo python3 wcdb_key_tool.py extract --decrypt
# macOS(需先对微信重签名去 Hardened Runtime)
sudo python3 wcdb_key_tool_macos.py extract --decrypt
# Windows(自动新版 runtime 扫描,老版本回退内存扫描)
python3 wcdb_key_tool_windows.py extract --decrypt
首次提取需在微信里退出登录再重新登录一次(触发密钥重算),之后有缓存不用重复。
与 octohz 已有微信工具的分工
- wx_key(p/1679):只支持 4.0 老版内存扫描,已停更归档
- wechat-decrypt(p/1680):解密+实时监听,内存扫描路线
- wx-cli(p/1678):查询/导出 CLI,依赖已有密钥
- wcdb-key-tool:专攻 4.1+ 新版密钥提取,是上面这些工具在新版微信上的上游
项目数据
- GitHub 622 Stars,MIT 协议
- 致谢链:kkocdko(Linux GDB 断点原始思路)→ wxchat-export(ELF 静态分析)→ wechat-decrypt(内存扫描基础)→ 本项目整合三平台
暂无评论
