Skip to content

fix(macos): support WeChat 4.1.13 key extraction (0.2.5) - #1

Merged
sunfeihu007 merged 1 commit into
mainfrom
codex/macos-wechat-4-1-13
Sep 27, 2026
Merged

sunfeihu007 merged 1 commit into
mainfrom
codex/macos-wechat-4-1-13

Conversation

@sunfeihu007

Copy link
Copy Markdown
Owner

微信 macOS 4.1.13 不再暴露旧扫描器依赖的明文密钥字符串,导致进程可读取时仍返回 0 个密钥,新建消息数据库无法查询。本修复在本仓库加入 Config.Cipher 读取,并适配实机确认的对象布局。

Changes

  • 基于上游 Support macOS WeChat 4.1.x Config.Cipher key extraction huohuoer/wechat-cli#23 的 Config.Cipher 方案,增加本机验证的 4.1.13 字段布局;保留旧格式扫描。
  • 候选值经过数据库第一页 HMAC 校验,去除可能误拒有效密钥的字符多样性判断。
  • 扫描使用独立临时目录;失败、空结果或无有效候选时保留原密钥;成功后合并已验证密钥并以 0600 权限原子保存。
  • 日志隐藏密钥,修正提取数量与重新签名后需要 init --force 的提示。
  • 包含重新编译的 macOS arm64 helper 和合成回归测试。
  • Python 修复版版本号为 0.2.5;中英文文档明确从 sunfeihu007/wechat-cli 的 main 安装或升级;安装包仅收录 wechat_cli 包。

Validation

  • python -m unittest discover -s tests -v:4 项通过,覆盖空结果、失败退出、错误 HMAC 和密钥合并保存。
  • C helper 和合成对象测试均使用 -Wall -Wextra -Werror 编译通过;三种布局测试通过。
  • macOS arm64 + 微信 4.1.13(269631)实机提取 33/33 个数据库密钥,全部通过 HMAC 校验;日期范围聊天查询恢复。
  • 干净 wheel 构建和独立目录安装通过;--version 显示 0.2.5,打包 helper 与已验证二进制一致。
  • git diff --check 通过。

Scope

仅适配 macOS 提取器;其他微信构建仍可能需要布局适配。npm/PyPI 上游发行包未更新,本修复通过本仓库 Git 安装提供。提交不包含本机密钥、数据库或聊天记录。

@sunfeihu007
sunfeihu007 merged commit ff86fb1 into main Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant