最近發現用Python生成詞雲圖挺有意思的,於是想着生成微信和某個人的聊天記錄的詞雲應該挺好玩。
在網上找了好多解密微信數據庫的文章,但大多數都是解密Android版的,好不容易找到些解密PC版的還寫得不夠詳細。
不過最後終於解密成功,其中遇到好多大坑小坑,聽我一一道來。
1,獲取數據庫加密密鑰
照着這篇文章做就好了,有兩個注意的地方
①如果你是64位系統,就下載64位的OllyDbg 否則無法運行。
②附加微信進程的時候可能會報錯忽略就可以了,不影響後面操作。
③附加時候有時候會特別慢,重新關了軟件再來了次就可以了。
這裏終於出現了大坑!
坑一:文章的第14寫“用鼠標框選前四行內容”錯誤,是前兩行。
PC版微信的密鑰是32位,4行就變成64位了,一開始一直用前四行試,永遠無法成功。
2,利用sqlcipher解密數據庫
文章是個好文章,可是無論如何也無法解密,去Google了好多其它方法,也無果而終。
聯繫了文章作者,說是針對Android版微信,不過之前看過其它地方說PC和Android版加密方法是一樣的…
最後這種方法宣告失敗,沒能解密成功,於是用了下面的方法。
坑二:無法找到合適的sqlcipher解密參數。
爲什麼說是一個坑,因爲要在linux上編譯通過sqlcipher也不是一件容易的事情,安裝各種各校的包不說,好多還不能直接通過apt或者yum安裝,得下回來編譯,而編譯時候發現又缺少其它的包……就這樣試了兩個版本的linux最後編譯成功了sqlcipher,可還是無法解密,相信參數對了是應該可以解密的。
3,利用一段C++代碼解密數據庫
雖然說是一段代碼而已,但是並不是那麼容易就能運行起來了。
得需要安裝:visual studio, openssl還要進行各種各校的配置,差一點程序就不能編譯了。
而且win10下openssl一定要用1.0.x的版本,否則無法識別。
關鍵我還幾乎沒用過vs,更沒寫過C++,一開始出各種錯,再加上最開始全是用的前4行做的密鑰,更是雪上加霜…
有幾點需要注意:
①新建的項目選擇Visual C++下面的Windows Console Application
②我把代碼拷貝進去後提示cann't open source file “stdafx.h”,把第一行的#include "stdafx.h"換成#include "pch.h"即可。
坑三:用C++解密需要進行復雜的配置,錯一點就撲街。
在聯繫作者幾次後終於運行成功,得到解密的數據庫文件,最開始有各種錯誤,最後莫名的好了…
最後用Python順利的讀取到了聊天內容,生成了詞雲圖,散花~