wx-favorites-report 實測:微信收藏夾可視化工具,一鍵生成交互報告
你有沒有想過,微信收藏夾裏到底藏了多少東西?那些隨手收藏的文章、視頻、鏈接,到底有多少再也沒打開過?
wx-favorites-report 是一個開源的微信收藏可視化工具,能從加密的微信 Mac 本地數據庫中端到端解密、解析數據,並生成一份包含 7 種圖表的交互式 HTML 報告。簡單來說——它讓你的微信收藏從「黑箱」變成「儀表盤」。
一、wx-favorites-report 是什麼
wx-favorites-report 由開發者 zhuyansen 開源,最初作爲 Claude Code 的 Skill 發佈,後被整合到 claude-code-skills-zh 等開源項目中。
它的核心能力可以概括爲三步:
- 解密:從微信 Mac 客戶端的加密數據庫(SQLCipher)中提取密鑰並解密
- 解析:將 SQLite 中的 XML 結構化數據解析爲統一 JSON
- 可視化:生成單文件 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 輪嘗試:
| 輪次 | 方法 | 結果 |
|---|---|---|
| 1 | C 內存掃描 x’hex’ 格式 | 失敗:WeChat 4.x 不用此格式 |
| 2 | 搜索原始 salt 字節 | 失敗:誤匹配 ASCII 字符串 |
| 3 | HMAC 暴力驗證 | 失敗:過濾條件跳過真正位置 |
| 4 | 無過濾暴力搜索 | 失敗:密鑰經 PBKDF2 派生後存儲 |
| 5 | DYLD hook / lldb | 失敗:macOS SIP 阻止 |
| 6 | frida + CCKeyDerivationPBKDF | 成功 |
最終方案通過 frida hook 系統級 PBKDF2 函數,在微信啓動時捕獲密鑰派生過程。
3.3 數據處理流程
加密 DB → frida 提取密钥 → PyCryptodome 解密 → SQLite 读取
→ XML 解析 → 统一 JSON → ECharts 渲染 → 单文件 HTML
四、安裝與部署
4.1 環境要求
| 條件 | 說明 |
|---|---|
| 操作系統 | macOS(Apple Silicon 或 Intel) |
| 微信版本 | Mac 4.x 已登錄 |
| Python | 3.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 腳本後,微信會重新啓動。此時你需要:
- 登錄微信(掃碼或確認)
- 點擊左側「收藏」標籤
- 等待 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 的獨特優勢在於:
- 專注收藏場景:不像聊天記錄工具那樣龐大複雜
- 可視化質量高:7 種專業圖表,遠超微信自帶的列表搜索
- 單文件輸出:無需安裝額外軟件即可查看
- 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 工具評測合集,瞭解更多實用的數據分析和可視化工具。