wx-favorites-report 实测:微信收藏夹可视化工具,一键生成交互报告

wx-favorites-report 实测:微信收藏夹可视化工具,一键生成交互报告

wx-favorites-report 实测:微信收藏夹可视化工具,一键生成交互报告

你有没有想过,微信收藏夹里到底藏了多少东西?那些随手收藏的文章、视频、链接,到底有多少再也没打开过?

wx-favorites-report 是一个开源的微信收藏可视化工具,能从加密的微信 Mac 本地数据库中端到端解密、解析数据,并生成一份包含 7 种图表的交互式 HTML 报告。简单来说——它让你的微信收藏从「黑箱」变成「仪表盘」。

一、wx-favorites-report 是什么

wx-favorites-report 由开发者 zhuyansen 开源,最初作为 Claude Code 的 Skill 发布,后被整合到 claude-code-skills-zh 等开源项目中。

它的核心能力可以概括为三步:

  1. 解密:从微信 Mac 客户端的加密数据库(SQLCipher)中提取密钥并解密
  2. 解析:将 SQLite 中的 XML 结构化数据解析为统一 JSON
  3. 可视化:生成单文件 HTML 报告,包含统计仪表盘、月度趋势、类型分布等

整个过程可以全自动完成——如果你使用 Claude Code,只需说一句「微信收藏可视化」,工具就会自动跑完全部流程。

二、核心功能详解

2.1 数据提取:从加密 DB 到明文

微信 Mac 4.x 的收藏数据存储在 SQLCipher 加密的 SQLite 数据库中。wx-favorites-report 使用 frida 动态注入技术,hook 微信的 CCKeyDerivationPBKDF 函数,在运行时捕获密钥派生过程。

# 安装依赖
pip3 install frida frida-tools pycryptodome

# 准备微信签名副本(绕过 Hardened Runtime)
cp -R /Applications/WeChat.app ~/Desktop/WeChat.app
codesign --force --deep --sign - ~/Desktop/WeChat.app

解密参数为 SQLCipher 4 标准:AES-256-CBC 加密、HMAC-SHA512 校验、PBKDF2 256000 轮迭代。

2.2 统计仪表盘

报告首页是一个数据总览面板,展示四个核心指标:

  • 收藏总数:你一共收藏了多少条内容
  • 跨越天数:从第一条收藏到现在的时长
  • 日均收藏:平均每天收藏几条
  • 来源数量:收藏内容来自多少个不同的来源

2.3 七大可视化图表

图表类型展示内容交互方式
月度趋势按月统计收藏数量变化折线 + 面积图
类型分布文章/视频/链接/图片占比甜甜圈图
来源排行Top 15 收藏来源水平柱状图
活跃热力图星期 × 小时收藏频率热力矩阵
时段分布一天中哪个时段最爱收藏双柱状图
词云从标题和描述提取关键词交互式词云
标签云微信收藏标签分布可点击标签

2.4 收藏浏览器

报告底部是一个功能完整的收藏浏览器,支持:

  • 按类型筛选(文章/视频/链接/图片)
  • 按标签筛选
  • 全文搜索
  • 多种排序方式
  • 分页浏览
  • 点击卡片查看完整内容和原文链接

三、技术原理

3.1 微信数据库结构

微信 Mac 4.x 的收藏数据存储在 favorite.db 中,路径为:

~/Library/Containers/com.tencent.xinWeChat/Data/Documents/
  xwechat_files/<wxid>/db_storage/favorite/favorite.db

与 3.x 版本使用 FavItems + FavDataItem 双表结构不同,4.x 改为 fav_db_item 单表,内容字段是 XML 格式。

3.2 密钥提取的 6 轮迭代

这是整个项目最难的部分。开发者经历了 6 轮尝试:

轮次方法结果
1C 内存扫描 x’hex’ 格式失败:WeChat 4.x 不用此格式
2搜索原始 salt 字节失败:误匹配 ASCII 字符串
3HMAC 暴力验证失败:过滤条件跳过真正位置
4无过滤暴力搜索失败:密钥经 PBKDF2 派生后存储
5DYLD hook / lldb失败:macOS SIP 阻止
6frida + CCKeyDerivationPBKDF成功

最终方案通过 frida hook 系统级 PBKDF2 函数,在微信启动时捕获密钥派生过程。

3.3 数据处理流程

加密 DB → frida 提取密钥 → PyCryptodome 解密 → SQLite 读取
→ XML 解析 → 统一 JSON → ECharts 渲染 → 单文件 HTML

四、安装与部署

4.1 环境要求

条件说明
操作系统macOS(Apple Silicon 或 Intel)
微信版本Mac 4.x 已登录
Python3.9+
可选Claude Code(一键执行)

4.2 手动安装步骤

Step 1:安装 Python 依赖

pip3 install frida frida-tools pycryptodome

Step 2:准备微信签名副本

cp -R /Applications/WeChat.app ~/Desktop/WeChat.app
codesign --force --deep --sign - ~/Desktop/WeChat.app

Step 3:提取密钥

killall WeChat 2>/dev/null; sleep 2
# 运行 frida hook 脚本
# 微信启动后:登录 → 打开「收藏」页面 → 等待 60 秒

Step 4:解密并生成报告

# 解析数据
python3 parse_favorites.py --input favorite_decrypted.db --output data.json

# 生成 HTML 报告
python3 generate_report.py --input data.json --output report.html

# 本地预览
python3 -m http.server 8765
# 浏览器打开 http://localhost:8765/report.html

4.3 Claude Code 一键执行

如果你安装了 Claude Code,只需在对话中说:

微信收藏可视化

Claude 会自动完成密钥提取、解密、解析、报告生成的全部流程。

五、实战教程:生成你的第一份收藏报告

5.1 数据提取

运行 frida 脚本后,微信会重新启动。此时你需要:

  1. 登录微信(扫码或确认)
  2. 点击左侧「收藏」标签
  3. 等待 60 秒让 frida 捕获密钥

密钥会保存到 /tmp/wechat_frida_keys.log,通过 salt 匹配找到 favorite.db 对应的 enc_key。

5.2 数据库解密

用 Python 解密:

from Crypto.Cipher import AES
import hashlib

# 从 frida 日志获取 enc_key 和 salt
enc_key = bytes.fromhex("your_enc_key_here")

# SQLCipher 4 参数
kdf_iter = 256000
page_size = 4096
reserve_size = 80  # IV(16) + HMAC(64)

# 逐页解密...

5.3 报告生成与自定义

python3 generate_report.py --input data.json --output report.html

生成的报告是一个单文件 HTML,所有 CSS 和 JavaScript 都内联其中,可以直接双击打开,也可以上传到任何静态托管服务。

六、报告解读:如何分析你的收藏数据

6.1 发现使用习惯

通过活跃热力图,你可以发现:

  • 你在工作日还是周末更爱收藏?
  • 一天中哪个时段是收藏高峰期?
  • 是否存在「深夜刷手机疯狂收藏」的模式?

6.2 内容偏好分析

类型分布图揭示你的收藏偏好:

  • 如果文章占比 80%+,说明你是「深度阅读型」用户
  • 如果视频占比高,说明你偏好「碎片化学习」
  • 如果链接占比高,可能更多是「工具收藏」

6.3 来源质量评估

来源排行 Top 15 帮你识别:

  • 哪些公众号/网站是你最常收藏的?
  • 这些来源的内容质量是否持续稳定?
  • 是否有值得取消关注或加入 RSS 订阅的来源?

七、与其他微信数据工具对比

工具数据类型平台可视化难度
wx-favorites-report收藏Mac⭐⭐⭐⭐⭐中
WeChatMsg聊天记录Windows⭐⭐⭐中
PyWxDump聊天记录+联系人Windows⭐⭐高
微信自带收藏搜索收藏全平台⭐低

wx-favorites-report 的独特优势在于:

  1. 专注收藏场景:不像聊天记录工具那样庞大复杂
  2. 可视化质量高:7 种专业图表,远超微信自带的列表搜索
  3. 单文件输出:无需安装额外软件即可查看
  4. Claude Code 集成:一句话完成全流程

如果你对微信聊天记录也感兴趣,可以看看我们之前的文章 PyWxDump 实测。

八、应用场景

8.1 个人数据管理

定期生成收藏报告,帮你:

  • 清理过期或无用的收藏
  • 发现被遗忘的优质内容
  • 建立个人知识库的素材清单

8.2 内容整理

如果你是内容创作者,收藏报告可以:

  • 分析你关注的领域和话题
  • 发现内容灵感的来源规律
  • 为选题提供数据支撑

8.3 使用习惯分析

从数据中反思自己的信息消费模式:

  • 是否「收藏即遗忘」?
  • 收藏行为是否与焦虑相关?
  • 如何建立更有效的信息管理系统?

九、局限性与注意事项

9.1 平台限制

  • 仅支持 macOS:密钥提取依赖 frida 和 macOS 的微信客户端
  • 微信版本要求:目前适配 Mac 4.x,3.x 表结构不同
  • 需要微信已登录:必须有一个正在使用的微信账号

9.2 数据隐私

  • 所有数据处理都在本地完成,不会上传到任何服务器
  • 报告 HTML 文件包含你的收藏数据,请勿公开分享
  • frida 运行期间会 hook 微信进程,建议完成后关闭签名副本

9.3 已知限制

  • 图片/视频/文件的原始内容存在微信 CDN(加密格式),无法在报告中预览
  • 文章缩略图来自微信公众号 CDN,查看报告时需要联网
  • 每次微信更新后可能需要重新签名桌面副本

十、FAQ

Q1: wx-favorites-report 安全吗?会泄露我的微信数据吗?

所有数据处理完全在本地完成,不会上传到任何服务器。frida 只在本地 hook 微信进程提取密钥,报告生成后是纯本地 HTML 文件。但请注意保管好生成的报告文件,不要公开分享。

Q2: 支持 Windows 或手机端微信吗?

目前仅支持 macOS 平台的微信 Mac 4.x 客户端。Windows 和手机端的加密机制不同,暂不支持。如果你需要 Windows 平台的微信数据工具,可以参考 PyWxDump。

Q3: 微信更新后还能用吗?

微信大版本更新可能改变数据库结构或加密方式,届时需要等待工具适配。小版本更新通常不影响使用,但每次更新后需要重新对桌面副本签名。

Q4: 生成的报告可以分享吗?

报告是单文件 HTML,可以离线查看。但由于包含你的个人收藏数据,建议仅自己使用,不要上传到公开网站或分享给他人。

Q5: 没有 Claude Code 也能用吗?

可以。Claude Code 只是提供了一键执行的便利,手动按照文档步骤操作同样可以完成全部流程。核心脚本(parse_favorites.py 和 generate_report.py)是独立的 Python 程序。

十一、总结

wx-favorites-report 是目前我见过的最完整的微信收藏可视化方案。它解决了「微信收藏数据无法导出和分析」这个痛点,从加密数据库到交互式报告的全链路自动化做得相当成熟。

优点:

  • 全链路自动化,从解密到报告一键完成
  • 7 种可视化图表,数据洞察丰富
  • 单文件 HTML 输出,零依赖查看
  • Claude Code 集成,降低使用门槛

不足:

  • 仅支持 macOS,Windows/手机用户无法使用
  • 密钥提取过程有一定技术门槛
  • 图片/视频内容无法在报告中预览

如果你是一个「重度收藏用户」,想搞清楚自己到底收藏了什么、收藏习惯如何,wx-favorites-report 值得一试。


希望这篇博客文章对您有所帮助!如果你对微信数据管理感兴趣,还可以看看我们的 AI 工具评测合集,了解更多实用的数据分析和可视化工具。