关联主题:: Skills索引
同级::
下一级::
006|微信本地数字资产库 Skill(Yichen WeChat Local Vault)
一句话说明
这是一个本机微信数字资产库 Skill:Mac 模式负责微信 4.x 数据库的密钥匹配、全量/增量解密和已解密库查询;Windows 模式只接受用户提供的、已授权的离线明文快照,并通过
snapshot子命令查询。
隐私与授权边界
这个 Skill 可能接触完整微信聊天、联系人、朋友圈、收藏夹和附件索引。密钥、明文数据库、wxid、聊天原文和导出报告都不得复制到知识库、网盘或对话中;只能处理用户有权访问的数据。安装阶段没有运行敏感脚本;后续在用户明确要求、原版微信退出并通过签名副本扫码登录后,才完成了一次 Mac 初始化。本文只记录流程和汇总结果,不展示 key、明文数据库或聊天内容。
1. 基本信息
| 字段 | 内容 |
|---|---|
| Skill 编号 | 006 |
| 展示名称 | 微信本地数字资产库 |
| 英文名称 | Yichen WeChat Local Vault |
| 功能定位 | 在本机私密目录中解析、查询和导出已授权的微信本地数据 |
| 适用平台/场景 | macOS 微信 4.x 本地库;Windows 已解密离线快照的实验性查询;聊天、联系人、群聊、朋友圈、收藏夹和摘要素材 |
| 类型 | 开源 |
| 许可证 | Personal Learning and Non-Commercial Use License;仅个人学习、研究和非商业个人工作流 |
| 当前状态 | 已安装(Codex 用户级目录) |
| 调用方式 | 描述“解析微信”“查询聊天记录”“导出某个群聊”“分析朋友圈/收藏夹”等需求,或直接指代 yichen-wechat-local-vault |
| 上游来源 | mcncarl/yichen-skills/yichen-wechat-local-vault |
| 关联概念 | 028|Skill(AI技能) |
2. 能力范围
2.1 Mac 模式
vault_cli.py:统一只读查询入口,支持状态、会话、联系人、群成员、历史、关键词搜索、消息统计、导出、未读、新消息、收藏夹、朋友圈和群聊摘要素材包。extract_keys.py:列出本地数据库、复用已有抓取日志,或在用户明确要求时使用 Frida 观察经过处理的微信副本中的 PBKDF2 调用来匹配 SQLCipher 数据库密钥。decrypt_all_dbs.py:使用已授权的 key 对本地数据库做全量或增量解密,并把明文库和 manifest 写入本机私密 vault。export_chat.py、list_contacts.py、search_sns.py和wechat_digest.py:分别用于指定会话导出、联系人列表、朋友圈搜索辅助和按天摘要素材生成。
日常查询应优先使用已解密 vault 的 vault_cli.py;缺少 key 时不要默认启动抓取或全量解密。默认只处理官方第一个微信容器 com.tencent.xinWeChat,不处理双开/第二微信容器。
2.2 Windows 快照模式
Windows 模式只接受用户提供的、已授权的、脱离运行环境的明文快照。应先验证,再列出会话并使用精确 chat_id 查询:
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py \
snapshot --snapshot /path/to/authorized-snapshot validate
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py \
snapshot --snapshot /path/to/authorized-snapshot chats该模式不访问 Mac 配置、不抓取 key、不解密、不刷新增量状态,也不自动修复缺失的 WAL/SHM 或不兼容 schema。真实 Windows 版本兼容性仍属于实验性边界。
3. 推荐使用顺序
3.1 先检查已解密库
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py status --format text
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py sessions --limit 20 --format text3.2 再做最小范围查询或导出
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py \
history "联系人或群名" --start-time "2026-05-01" --end-time "2026-05-14" --format text
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py \
search "关键词" --chat "群名" --format text
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/vault_cli.py \
export "群名" --format markdown --output ./chat.md导出文件应放在用户明确选择的私密目录;不要把完整聊天原文直接贴进对话。需要群聊日报或精华时,先用 digest-source 生成素材包,再读取必要的 sources/*.md 和 sources/*.json。
3.3 只有明确授权时才进入密钥/解密流程
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/extract_keys.py --list-dbs
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/extract_keys.py \
--match-only --targets all --reuse-log
python3 /Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/scripts/decrypt_all_dbs.py --mode incrementalextract_keys.py 涉及 Frida、微信进程观察和 key 日志;decrypt_all_dbs.py 会生成包含明文隐私的本地数据库。它们不是安装后的自动初始化步骤,执行前必须再次确认数据授权、私密存储位置和是否允许产生明文副本。
4. 隐私和安全边界
- 密钥配置默认位于
~/.config/下的本机私密文件,明文 vault 默认位于~/Library/Application Support/wechat-local-vault/;这些路径不应同步或分享。 - 查询入口只读取已解密 vault;它不点击微信界面、不发送消息,也不修改微信数据库。
- Windows 快照必须来自用户明确授权的离线明文结构;禁止用它读取第三方或未经授权的聊天数据。
- 摘要、画像和导出报告应保持最小必要范围;不要根据聊天时间戳推断作息、所在地、健康、家庭或身份属性。
- 图片默认不可见;只有对应的
imgs/{message_id}.txt存在时,才可把其中描述纳入摘要,不能凭上下文编造画面。 - 上游许可证禁止商业使用、付费交付、打包分发和公司内部工具化使用;使用者还需自行承担隐私与合规责任。
5. 来源、许可证与安装验证
- 上游默认分支本轮核对到提交
fc575e5112eb4d4d5ea155f1f0cfd79621834006。 - 本机安装路径为
/Users/bairimengyushi/.codex/skills/yichen-wechat-local-vault/,包含 21 个文件;未发现项目.agents/skills/或.claude/skills/兼容副本。 - 本机
SKILL.mdSHA-256 为97cd0bbfda677aa8c5333aa6f55490fae1a3202f78644bc5329d5c256916087b,与上游同路径内容一致。 - 本机
README.mdSHA-256 为802356d07281ed058f7fffd82560b5dd8b690cfdad0bde986a3183853b63b460,与上游同路径内容一致。 - 上游根目录及安装包内
REPOSITORY_LICENSE.txt的 SHA-256 为107d928e6cc3848b651c4e026d247693c03f7bed5372ce48788baa72f1cf54f8。 - 仓库公开了源代码;按用户确认,本库将其类型登记为“开源”。同时保留上游许可证的个人学习、研究和非商业使用限制说明,不能据此扩大使用范围。
- 安装阶段只做静态核验,没有把 Frida、PyCryptodome、zstandard 等依赖写入系统 Python;实际运行阶段在 Skill 目录下的隔离
.venv中安装了 Frida 与 PyCryptodome,未使用--break-system-packages。 - 用户明确要求运行后,先用原版微信的本地数据定位数据库,再让用户退出原版微信;随后使用单独的签名副本扫码登录,仅观察副本中的 PBKDF2 调用,捕获 90 次调用并为 30 个目标数据库匹配 key。
- 使用匹配结果完成 30 个数据库的全量解密,
vault_cli.py status、会话索引和未读查询均验证可用;签名副本随后关闭,原版微信应用本身未被修改。
6. 关联资料
- Skills索引:永久编号与统一导航。
- 028|Skill(AI技能):复用的上位概念卡,本轮不新建概念卡。
- 微信聊天数据备份迁移:已有的微信数据备份与迁移资料。
- wechat-group-stats 安全性评估:相关的微信本地数据库、进程权限和隐私风险资料。
7. 这次实际运行是怎样完成的
记录范围
下面记录的是本次从“已安装”到“可用 vault”的操作链路。为了保护隐私,不展示微信账号标识、key 值、聊天原文、数据库文件名细节或任何导出内容。
7.1 先确认安装状态和数据入口
首先运行 vault_cli.py status --format text。当时本机还没有已解密 vault,Skill 只报告了预期的私密输出目录和可识别的微信数据库集合,没有把聊天内容打印出来。接着运行 extract_keys.py --list-dbs,确认使用的是官方第一个微信容器,并识别出 30 个待处理数据库。
7.2 用隔离环境解决运行依赖
第一次直接调用 extract_keys.py 时,系统 Python 因 macOS 的 PEP 668 外部管理策略拒绝自动安装依赖。这里没有强行修改系统环境,也没有使用 --break-system-packages,而是在 Skill 自己的目录下建立隔离 .venv,只在这个环境里安装并验证 Frida 和 PyCryptodome。
这一步的原则是:把运行依赖和系统 Python 隔开,后续如果需要停用或清理,不会把依赖散落到全局环境。
7.3 先做无侵入尝试,再请求用户登录
在用户退出原版微信之前,先复用已有捕获日志做 --match-only,结果是 0 个匹配;第一次短时观察签名副本也没有得到 PBKDF2 调用。这个结果说明仅凭旧日志不能初始化 vault,因此没有把失败结果误报成“已经获取 key”。
之后让用户退出原版微信,使用原版应用的单独副本进行观察。副本首次启动要求重新登录,用户扫码完成登录后,脚本在限定时长内捕获到 90 次 PBKDF2 调用,最终为 30 个目标数据库全部匹配到 key。key 只写入本机的私密配置文件,没有复制到知识库、对话或其他同步目录。
7.4 全量解密并做最小验证
拿到匹配结果后运行 decrypt_all_dbs.py --mode full,结果为:
Done: 30 decrypted, 0 failed, 0 skipped随后没有直接读取或展示聊天原文,而是使用只读入口做三类最小验证:
vault_cli.py status --format text:全部目标数据库显示OK;sessions --limit 20:能正常读取会话索引;unread --limit 50:能正常返回未读查询结果。
验证完成后关闭签名副本。原版微信仍可正常启动和使用,且原版应用本身没有被修改;今后一般从 status 开始,再按用户指定的联系人、群聊、关键词和时间范围做最小查询。
7.5 当前结果和安全边界
本次运行完成的是“本机私密 vault 初始化”,不是把微信数据导入知识库。key、解密数据库、manifest 和捕获日志仍留在本机私密目录,并已收紧相关文件权限;文章和对话只保留了操作步骤、数量级和验证结论。
后续如果要查询聊天记录、联系人、朋友圈或收藏夹,应继续遵循“先限定范围、再最小读取、最后按需导出”的顺序。没有新的明确授权时,不应再次启动密钥捕获、全量解密或生成新的明文副本。
文档更新日志
- 2026.09.11|建立 006 说明页:登记
yichen-wechat-local-vault的 Codex 用户级安装,记录 Mac/Windows 两种数据来源、隐私边界、个人非商业许可证、上游提交和本地哈希核验;按用户确认登记为“开源”;复用 028|Skill,不新建概念卡。 - 2026.09.11|补写“实际运行记录”:记录隔离
.venv、用户扫码登录、90 次 PBKDF2 捕获、30 个数据库全量解密、vault 状态验证和签名副本收尾;不写入 key 值或聊天原文,继续复用 028|Skill,不新建概念卡。
🔐 GitHub 评论(Giscus)
正在连接 GitHub 评论…