微信作為中國最受歡迎的行動即時通訊應用程序,不提供任何匯出結構化訊息歷史記錄的方法。
我們對微信訊息的儲存協定進行了逆向工程,提供了該工具在root後的安卓手機上解密並解析微信訊息。它還可以將訊息呈現為獨立的 html 文件,包括語音訊息、圖像、表情符號、視訊等。
該工具最後一次驗證可與最新版本的微信相容,時間為 2025 年 1 月 1 日。如果該工具適合您,請花點時間將您的手機/作業系統新增至 wiki。
./third-party/compile_silk.sh
建造)pip install -r requirements.txt
。 ./android-interact.sh db
。它可能使用了不正確的用戶 ID。/data/data/com.tencent.mm/MicroMsg
的內容找出您的${userid}
。它應該是由十六進制數字組成的 32 個字元長的名稱。/data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db
。./decrypt-db.py decrypt --input EnMicroMsg.db
取得微信uin(整數),可能的方式有:
./decrypt-db.py uin
,在/data/data/com.tencent.mm/shared_prefs/
中尋找 uindocument.cookie
中取得wxuin=1234567取得您的設備id(正整數),可能的方式有:
./decrypt-db.py imei
實作了一些查找設備 id 的方法。*#06#
使用 uin 和裝置 id 的組合解密資料庫:
./decrypt-db.py decrypt --input EnMicroMsg.db --imei <device id> --uin <uin>
注意:您可能需要嘗試不同的方法來取得裝置 ID 並找到可以解密資料庫的方法。有些手機可能有多個 IMEI,您可能需要全部嘗試。參見#33。該指令將在EnMicroMsg.db.decrypted
轉儲解密的資料庫。
如果上述解密不起作用,您也可以嘗試密碼破解器來暴力破解金鑰。加密密鑰不是很強。
將手機上的微信使用者資源目錄/data/data/com.tencent.mm/MicroMsg/${userid}/{avatar,emoji,image2,sfs,video,voice2}
複製到resource
目錄:
./android-interact.sh res
RES_DIR
。對於舊版本的微信,該目錄可能是/mnt/sdcard/tencent/MicroMsg/
tar
進行壓縮或不進行壓縮,然後複製存檔會更快,建議使用busybox tar
,因為 Android 系統的tar
可能會在長路徑上阻塞。resource
目錄: avatar,emoji,image2,sfs,video,voice2
。 (可選)從這裡下載表情符號快取並在wechat-dump
下解壓縮。這將避免在渲染過程中下載太多表情符號。
wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2
tar xf emoji.cache.tar.bz2
解析並轉儲每個聊天的文字訊息(需要解密的資料庫):
./dump-msg.py decrypted.db output_dir
列出所有聊天記錄(需要解密資料庫):
./list-chats.py decrypted.db
產生簡訊統計報告(需要./dump-msg.py
中的output_dir
):
./count-message.sh output_dir
將一個聯絡人的消息轉儲為 html,包含語音訊息、表情符號和圖像(需要解密的資料庫和resource
):
./dump-html.py "<contact_display_name>"
輸出檔是output.html
。
檢查./dump-html.py -h
以使用不同的路徑。
產生的html截圖:
請參閱此處的 html 範例。
grep 'TODO' wechat -R