Skip to content

wx-cli 0.3.0 无法检测微信 3.8.6 的数据目录 #69

@YuqingNicole

Description

@YuqingNicole

wx-cli 0.3.0 无法检测微信 3.8.6 的数据目录

环境信息

  • 操作系统: macOS 14.5 (Darwin 24.5.0)
  • 微信版本: 3.8.6 (3.8.6.0.9)
  • wx-cli 版本: 0.3.0
  • 安装方式: npm global install

问题描述

执行 wx init 时始终报错:

检测微信数据目录...
错误: 未能自动检测到微信数据目录
请手动编辑 config.json 中的 db_dir 字段

即使手动在 ~/.wx-cli/config.json 中配置了正确的 db_dir 路径,仍然报同样的错误。

已尝试的配置

// 尝试 1: 完整路径到用户目录
{
  "db_dir": "/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/ac1493ff9c1e212fb4e8677a4acf70f7"
}

// 尝试 2: 版本目录
{
  "db_dir": "/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9"
}

// 尝试 3: Application Support 目录
{
  "db_dir": "/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat"
}

所有尝试均失败。

根本原因分析

通过 strings 分析 wx-cli 二进制发现,代码中硬编码了路径:

Library/Containers/com.tencent.xinWeChat/Data/Documents/xwechat_files

但在微信 3.8.6 中,这个路径不存在。实际的数据库文件位于:

Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/{wxid}/

目录结构对比

wx-cli 期望的结构(旧版)

~/Library/Containers/com.tencent.xinWeChat/Data/Documents/
└── xwechat_files/
    └── {wxid}/
        ├── Message/
        ├── Contact/
        └── Session/

微信 3.8.6 实际结构(新版)

~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/
└── 2.0b4.0.9/
    └── {wxid}/
        ├── Message/
        │   ├── msg_0.db
        │   ├── msg_1.db
        │   └── ...
        ├── Contact/
        │   └── wccontact_new2.db
        └── Session/
            └── session_new.db

验证步骤

# 1. 验证数据库文件确实存在
find ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support -name "*.db" | head -5
# 输出显示存在 33 个 .db 文件

# 2. 检查旧路径是否存在
ls ~/Library/Containers/com.tencent.xinWeChat/Data/Documents/xwechat_files
# ls: cannot access: No such file or directory

# 3. 微信进程参数
ps aux | grep WeChatAppEx | grep wechat-files-path
# 显示: --wechat-files-path=/Users/xxx/.wxapplet (仅小程序路径)

已完成的准备工作

✅ WeChat.app 已重签名(ad-hoc signature)
✅ macOS TCC 权限已重置
✅ 微信正在运行且已登录
✅ Terminal.app 已获得完全磁盘访问权限

建议修复方案

wx-cli 的自动检测逻辑需要更新以支持微信 3.8.x 的新目录结构:

  1. 检查 Library/Application Support/com.tencent.xinWeChat/ 下的版本目录(如 2.0b4.0.9
  2. 扫描版本目录下的 wxid 目录
  3. 验证 Message/, Contact/, Session/ 子目录是否存在

临时 Workaround

尝试创建符号链接(未成功):

ln -s ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat/2.0b4.0.9 \
      ~/Library/Containers/com.tencent.xinWeChat/Data/Documents/xwechat_files

相关信息

  • 这个问题可能影响所有使用微信 3.8.x 的 macOS 用户
  • 0.3.0 是最新版本(2026-05-15 发布)
  • 没有找到相关的 open issues

期望行为

wx init 应该能够自动检测微信 3.8.6 的数据目录位置并成功提取密钥。


感谢开发这个优秀的工具!期待修复 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions