有個朋友上門尋求協助,帶着她朋友的朋友的手機,說是手機硬件有問題,想把手機內的資料都備份出來,尤其是WeChat的聊天內容…我跟她說,那iTool等工具不就可以幫上忙了嗎?沒想到她早就試過了, 說iTool根本找不到WeChat的數據庫EnMicroMsg.db,看來她真的是很想取出數據哈~下足功夫了…
其實,取出WeChat數據庫還不算是個問題,重點是在取出后,如何萃取出里頭的聊天內容,因為WeChat在Android里可是默認加密的數據庫哦~但朋友嘛,只好盡力而為,幫幫她嘍~畢竟,”凡走過必留下痕跡”,聊過的話,也必然還躺在數據庫里頭,真人面前不說假話…其實懂數據庫特性者便知,所謂”刪除”非真刪除…
接下來,就請各位和在下化身為調查員,展開WeChat加密數據庫的破解任務吧~先用iTool查看相關信息,很幸運的,這是支已root過的手機,處理起來也會方便多了…也許他/她當初只是為了取得手機的超級管理者權限以徹底的”玩”手機,但在這案例中,對欲破解Android中默認加密的WeChat數據庫的我來說,便有了施力點,可說幾乎是已成功了一半…現在各位更可以體認,為何說root是”兩面刃”了吧~
1. 定位WeChat數據庫所在位置並導出到計算機上進行后續處理
2.檢視EnMicroMsg.db數據庫內容,果然是加密的呢,想不到WeChat在Android的版本竟有如此的安全性哈..真是令人意外~
3.古人雲:"有法必有破”,因此在破解前,先來研究一下它的加密原理
查到的數據顯示,它的加密規則單純,是利用IMEI搭配WeChat UIN,然后計算出MD5值,取前7碼,這便是它的key.
IMEI-國際移動設備標識符-它可說是手機的身份證呢…是唯一識別,絕不會有2支機有同樣的IMEI,這也是往往在犯罪偵查中,要扣押犯嫌手機之故,里頭可是一個人生活的縮影…
UIN-微信用戶的身份證號碼,應該不用多加說明了…
4.找出手機的IMEI
有2個方式,隨個人喜好:
a.) 撥號鍵盤按 *#06#
b.) 打開手機背蓋,電池取出,可查看IMEI等相關信息
5.找出UIN,它位於檔案system_config_prefs.xml中,搜尋字段 uin即可查到value
6.將IMEI與UIN合在一起(2個字符串中間不要自作聰明去加一些符號,不然死也解不了數據庫…),算出一組MD5 Hash值,取其前7碼
7.幸運的是,WeChat數據庫所用的加密是開源的.因此可方便的找到相關資源.可以在不同操作系統平台運行后續的破解步驟.在此為簡化步驟之故.直接用Windows版的SQLCipher來開啟數據庫
8.開啟EnMicroMsg.db時,便會要求輸入pragma key,請輸入上述得到的前7碼即可
9.撥雲見日…總算可以看到聊天內容了
10.匯出聊天內容吧~產生成文件,方便她用字處理工具直接檢視,無須再操作數據庫.
后記:
皇天不負苦心人,友人想挖出手機內WeChat 6.0.1加密數據庫的聊天內容,總算如願以償…
據了解,即使是知名取證設備大廠如xry等,目前尚無法有效處理WeChat的加密數據庫..是WeChat版本太新關系嗎?不太清楚…智能手機聊天App愈來愈進化了…”閱后即焚”的功能推陳出新,再加上”加密”,簡直是固若金湯…未來要破解這類聊天App的聊天內容恐怕只會難上加難~
也許有人會說,那還不簡單,聊天內容定期去刪除就好啦~問題來了,這類聊天App軟件都會將信息存在數據庫中,而凡是只要存放在數據庫中的數據,所謂"刪除"也並非真正刪除的..而只是注記,讓它們隱身起來…除非真的用數據庫工具或下指令去處理,不然數據,可是一直都在的哦~這也是我一開始對她所說的”凡走過必留下痕跡”…