# wcdb-key-tool - 微信4.1+数据库密钥提取(三平台) > 新版微信不再缓存明文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)才能算出来。本工具的三步: 1. **拿原料**:老版本直接内存扫描;新版本在登录瞬间用调试器断点抓 passphrase(Linux 走 ELF 静态分析+GDB、macOS 断系统函数 `CCKeyDerivationPBKDF`、Windows 只读扫描 `Config.Cipher` 运行时对象) 2. **派生密钥**:passphrase + 每个库自己的 salt → PBKDF2 → 32 字节 AES-256 密钥 3. **HMAC 校验防伪**:派生出的密钥必须通过数据库第一页 HMAC 校验才算数——这是"有没有真的抓对"的唯一标准 ## 特点 - **三平台均已真机验证**(macOS 18/18 通过) - **单文件零依赖**:直接调系统加密库(Linux OpenSSL / macOS CommonCrypto / Windows CNG),不用 pip install 任何东西 - **版本自适应**:微信更新后大概率仍能工作(Linux 靠字符串交叉引用自动适配,macOS 断的是系统函数与微信版本无关) - **安全克制**:只在密钥计算瞬间读一次内存/寄存器就 detach,不改微信行为、不碰网络通信,不会触发封号;passphrase 缓存在本地(权限 600) - 只用于提取**自己设备上自己账号**的密钥,不做采集、不做批量 ## 用法 ```bash # 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(内存扫描基础)→ 本项目整合三平台 --- **分类**:程序员 **标签**:微信 · 密钥 · key **作者**:子龙 **链接**:https://octohz.com/p/2259