微信聊天記錄導(dǎo)出

本文將介紹如何將微信聊天記錄導(dǎo)出為結(jié)構(gòu)化數(shù)據(jù)

所需材料

  • 一部已經(jīng)root的安卓手機(jī)
  • 帶GPU的Linux電腦
    整體流程如下:


數(shù)據(jù)庫(kù)文件提取

使用RE管理器,在已經(jīng)root的安卓手機(jī)上,找到如下文件:/data/data/com.tencent.mm/MicroMsg/[weixin_name]/EnMicroMsg.db,(其中[weixin_name]是32位的md5值,如果它有多個(gè)值,說(shuō)明這部手機(jī)上登錄過(guò)多個(gè)微信號(hào)),將該文件傳到電腦上。

破解密碼

這個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行了加密,密碼是7位的小寫字母加數(shù)字組合,有兩種破解的方式

1. 計(jì)算的方式

網(wǎng)上有很多方法已經(jīng)介紹的很詳細(xì)了,即使用IMEI和微信的uid拼起來(lái)計(jì)算md5,取前7位,但是我這邊測(cè)試不通過(guò),有需要的可以參考:微信聊天記錄解密并導(dǎo)出

2. 暴力破解方式

使用計(jì)算的方式看似比較討巧,但是比較浪費(fèi)時(shí)間,我的手機(jī)IMEI不能復(fù)制,需要截圖傳到QQ/微信識(shí)別文字,雙卡手機(jī)還有兩個(gè)IMEI,兩個(gè)都試了均未成功。無(wú)意間發(fā)現(xiàn)網(wǎng)上介紹有暴力破解的方式,于是打開新世界:提取微信聊天記錄。

這個(gè)工具https://github.com/whiteblackitty/SQLCipher-Password-Cracker-OpenCL可以實(shí)現(xiàn)使用GPU暴力破解數(shù)據(jù)庫(kù)密碼。

這個(gè)配置環(huán)境比較麻煩,需要Linux, Python, pip OpenCL,Cuda等等一系列操作,非常惡心。不過(guò)對(duì)于深度學(xué)習(xí)er來(lái)說(shuō),這些都是家常便飯了,直接按照readme裝好環(huán)境,然后對(duì)源碼做如下修改:
Lib/pbkdf2-sha1_aes-256-cbc.cl 文件的 752 行 (link) 修改為

  •  ```if(((uint)(data[5] ^ iv[5])==0x40) && ((uint)(data[6] ^ iv[6])==0x20) && ((uint)(data[7] ^ iv[7])==0```
    

運(yùn)行如下命令,即可開始破解密

  • python Run.py 0

然后你就得到了7位的數(shù)據(jù)庫(kù)密碼
我用的2080TI顯卡,親測(cè)只用5分鐘即可遍歷完所有可能,實(shí)際只用2分鐘破解完密碼,比前面IMEI+uid計(jì)算的方式方便太多。因此,推薦Linux+GPU用戶使用暴力破解的方式。

導(dǎo)出為結(jié)構(gòu)化txt

  • 數(shù)據(jù)庫(kù)解密:

在ubuntu上安裝sqlcipher,目前(2021.12.24)默認(rèn)安裝的3.4.1版本,這個(gè)版本可以使用
sudo apt-get install sqlcipher
然后在數(shù)據(jù)庫(kù)文件EnMicroMsg.db的目錄下,執(zhí)行如下命令:

sqlcipher EnMicroMsg.db 'PRAGMA key = "yourkey"; PRAGMA cipher_use_hmac = off; PRAGMA kdf_iter = 4000; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database");DETACH DATABASE decrypted_database;

把yourkey換成你的密碼,如果有報(bào)錯(cuò),說(shuō)明密碼不對(duì),等待大約兩分鐘,即可得到解密后的數(shù)據(jù)庫(kù)文件decrypted_database.db

  • 聊天記錄格式化導(dǎo)出:
    我們使用wechat-dump提供的腳本,將聊天記錄按照會(huì)話用戶名/群聊名稱進(jìn)行整理
  • 復(fù)制項(xiàng)目
    git clone git@github.com:ppwwyyxx/wechat-dump.git
  • decrypted_database.db放到wechar-dump文件夾下
  • 執(zhí)行解析:
    ./dump-msg.py decrypted.db output_dir

然后就可以在output_dir文件夾下看到整理后的聊天記錄

其他玩法

根據(jù)生成的聊天記錄,我們可以做一系列分析,包括統(tǒng)計(jì)分析,如詞頻統(tǒng)計(jì),發(fā)言次數(shù)統(tǒng)計(jì),發(fā)言長(zhǎng)度統(tǒng)計(jì);內(nèi)容分析,如情感分析,意見挖掘,觀點(diǎn)提取,主題抽取等;對(duì)話生成,可以訓(xùn)練一個(gè)略帶感情的聊天機(jī)器人代替你回復(fù)老板,或者讓它模仿女朋友的說(shuō)話口吻跟你說(shuō)晚安等等??傊?,有了原始數(shù)據(jù),我們可以為所欲為。

  • 詞頻統(tǒng)計(jì)(詞云)
  • 發(fā)言統(tǒng)計(jì)
  • 聊天機(jī)器人

參考資料

  1. 微信聊天記錄解密并導(dǎo)出,鏈接
  2. 提取微信聊天記錄,鏈接
  3. GPU破解密碼,鏈接
  4. wechat-dump,鏈接
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 最近嘗試著做 IM 聊天的開發(fā),因?yàn)闆](méi)有多少實(shí)際經(jīng)驗(yàn),只能摸索著來(lái),找一些作為參考:微信肯定是最具權(quán)威得了,...
    Superman168閱讀 16,781評(píng)論 5 4
  • 簡(jiǎn)介 最近接到公司的一個(gè)任務(wù),要獲取微信聊天記錄,心想,這應(yīng)該不太可能吧,畢竟微信這么多人用,要是能夠輕易導(dǎo)出聊天...
    拔蘿卜占坑閱讀 56,373評(píng)論 2 16
  • 哪個(gè)小可愛在偷偷的看我~~偷瞄.gif 前言 最近公司需要做個(gè)內(nèi)部應(yīng)用,需求有通話并錄音上傳服務(wù)器,微信聊天記錄上...
    打醬油的日光燈閱讀 8,387評(píng)論 13 36
  • 2020-02-19 晴 鄭州 出場(chǎng)人物 沉瓶 - 產(chǎn)品經(jīng)理 飯咸 - 程序員 工作環(huán)境 硬件:MacBook P...
    飯咸啦閱讀 2,427評(píng)論 0 1
  • 最近在做一個(gè)聊天的應(yīng)用 剛好用到了數(shù)據(jù)庫(kù),看源代碼是把所有的聊天消息都存儲(chǔ)在一張表里的,對(duì)數(shù)據(jù)庫(kù)不是很懂想著這樣對(duì)...
    饑餓的野獸閱讀 12,778評(píng)論 2 3

友情鏈接更多精彩內(nèi)容