本地读微信,不必碰云端 · Read WeChat PC locally Windows 开源工具:解密本地库 · 滑订阅号 IndexedDB · 单联系人自动导出。
wxlocal — 读取微信 PC 4.x 本机 xwechat_files:解密聊天库、监听订阅号 IndexedDB、按联系人导出转发语料。数据默认留在本机与外置知识库目录。
- 一句话目标:登录微信后,后台静默跑两条管道——滑订阅号 → URL 注册表 + 开发向过滤;转发联系人 → 导出 JSON + 增量归档。
- 边界:自学习 / 研究工具,免责声明必读;不是腾讯官方 SDK,不承诺微信版本永久兼容。
- 平台:仅 Windows(内存密钥提取、Chromium IndexedDB 路径均依赖 PC 客户端)。
| 域 | 状态 |
|---|---|
| Core 解密 + 导出 | ✅ run_extract.bat · wxlocal-export · Web UI |
| mp-scroll(IndexedDB) | ✅ run_mp_scroll.bat · wxlocal-mp-scroll · 登录自启 |
| chat-watch(单联系人) | ✅ run_chat_watch.bat · wxlocal-watch · delta 归档 |
| mp-capture(可选) | ✅ mitmproxy addon |
| 解密缓存路径 | ✅ 统一 output/decrypted/ |
| CI | ✅ compileall + pytest smoke |
| 验证 | ✅ scripts/verify.ps1 |
维护笔记: docs/STANDALONE.md · 架构: docs/ARCHITECTURE.md
| 路径 | 内容 |
|---|---|
wxlocal/ |
可安装包:config · core · pipelines · ops · shared · web · export |
scripts/ |
verify · daemon_status · ops · research |
launchers/win/ |
统一 VBS 启动器(pythonw -m …) |
vendor/wcdb-key-tool-main/ |
SQLCipher 解密(MIT) |
docs/ |
DISCLAIMER · 运维 · 架构 |
output/ |
运行时(密钥缓存、日志、decrypted/,gitignore) |
git clone https://github.com/NinjaSln-labs/wxlocal.git
cd wxlocal
python -m venv .venv
.\.venv\Scripts\pip install -e ".[dev]"
copy .env.example .env
# 必填:WECHAT_DATA_ROOT=D:\app\WeixinData\xwechat_files
.\run_extract.batDaemon(推荐):
.\run_chat_watch.bat # 或 wxlocal-watch
.\run_mp_scroll.bat # 或 wxlocal-mp-scroll
.\status_wxlocal.bat
.\stop_wxlocal.bat登录自启(无弹窗):
.\setup_wxlocal_autostart.bat
.\status_wxlocal.bat| 模块 | 入口 | 说明 |
|---|---|---|
| Core | run_extract.bat |
管理员提权 → 提取密钥 → 解密 → 导出 |
| mp-scroll | wxlocal-mp-scroll --once |
单次扫描 IndexedDB |
| chat-watch | wxlocal-watch --once |
单次同步指定联系人 |
| Web UI | run_web.bat / wxlocal-web |
http://127.0.0.1:8787 |
| 变量 | 含义 |
|---|---|
WECHAT_DATA_ROOT |
xwechat_files 根目录(必填) |
WECHAT_KB_ROOT |
语料导出根(默认 ./data/knowledge-base) |
WECHAT_WATCH_CONTACT |
chat-watch 联系人昵称(默认 FileTransfer) |
WXLOCAL_PYTHON |
自启用 pythonw 路径 |
WECHAT_FETCH_PROXY |
标题抓取 HTTP 代理(正文抓取当前降级,详见 §边界) |
分类 / 过滤规则可放在消费者 KB 的 config/*.json,见 docs/STANDALONE.md。
| 文档 | 说明 |
|---|---|
| DISCLAIMER | 必读 — 自学习声明与合规提示 |
| STANDALONE | OSS 布局 · 自启 · KB 契约 |
| ARCHITECTURE | 模块依赖与运行时结构 |
| MP_CAPTURE | mitm / IndexedDB 细节 |
| WECHAT_4.1.13_RESEARCH | 4.x 解密调研笔记 |
| LOCAL_SETUP.example | 维护者本地配置模板 |
不做:云端同步、多账号 SaaS、绕过微信 ToS 的「破解」宣传。
受限(08-28 起,待方案验证):文章正文获取受微信改版影响——微信 PC 客户端正文走 mmsocket 加密直连(绕过 HTTP 代理),HTTP GET 文章 URL 返回 TCaptcha 验证码挑战页,常规抓取路径全灭。当前仅能获取标题 + 短摘要(卡片 des,平均 111 字);两条线(mp-scroll 注册表 URL + chat-watch 会话卡片)拿文章全文都依赖 HTTP,HTTP 堵死则正文拿不到。F2 正文恢复方案(验证码 API 破解等)见 docs/ROADMAP.md §F2,待验证后再开工。
只做:读本机已落盘数据 + 可选代理补正文(当前降级)+ 可配置外置语料目录。
- 分支
main;PR 须在 Windows 下通过scripts/verify.ps1 -SkipIntegration(或 CI)。 - 密钥、
output/、.env永不提交。
MIT · bundled wcdb-key-tool (MIT)