小白解密安卓機上微信聊天記錄

安卓小白,出於調研「如何遷移微信聊天記錄」而去破解了一下安卓機的微信聊天記錄數據庫文件,這個破解方式2013年就已經有人發表了文章,有興趣能夠去網上搜一搜,這篇文章主要是記錄學習歷程以及遇到的問題。android

具體過程

1.聊天記錄信息全保存在手機/data/data目錄裏。這個目錄須要root以後,手機上才能看到此目錄(可是電腦端仍是不可直接查看)算法

2.經過adb鏈接手機,而後adb shell使用su權限受權/data/data 777權限,而後就能夠經過電腦上的android studio裏的android device monitor查看此目錄結構sql

3.android device monitor能夠選擇文件並導出到電腦上,進行進一步查看
android device monitor截圖shell

4.微信聊天記錄位置
/data/data/com.tencent.mm/MicroMsg/一串MD5 32位小寫格式的文件夾/EnMicroMsg.db裏
(這串MD5 32位小寫格式的文件夾名是經過mm+uin而後MD5加密而成的)數據庫

5.這個EnMicroMsg.db有密碼,密碼是手機imei+uin 而後進行MD5的32位小寫加密,並截取前7位微信

  • 獲取 imei號: 在手機的打電話撥號盤輸入*#06#獲取
  • 獲取 uin:

方法一:訪問/data/data/com.tencent.mm/MicroMsg/*/system_config_prefs.xml,獲取其中name="default_uin" value="([0-9]+)"的value字段值uin。(我用的這個,有效)
方法二:也能夠打開wx.qq.com網頁版,查找.wx.qq.com域的cookie,其中wxuin字段的值就是uin。(試過,密碼錯誤,好像和正負數有關)
方法三:也能夠用backup.tar裏的apps/com.tencent.mm/sp/system_config_prefs.xml。cookie

而後網上大部分說這個加密算法是不會變化的(MD5(IMEI+UIN).Substring(0, 7).toLower),由於維繫爲了兼容之前版本,若是數據庫加密算法變更,那麼老版本的用戶升級到新版本,老版本的數據庫解密就會失敗的,也就是用戶看不到之前的消息內容,那不可能的app

6.通常數據庫軟件像navicat沒法打開EnMicroMsg.db,須要專門的處理加解密的數據庫軟件打開,我用的大部分人推薦的sqlcipher。(這是一個開源的庫,據說若是版本不一樣,使用正確的密碼也不能打開,如今使用的是v2.1版本,能夠打開ide

7.成功打開聊天記錄信息的數據庫,能夠看到表結構
表結構截圖學習

8.能夠去到Browse Date頂部菜單裏查看數據數據:

用戶基本信息——userinfo表
聯繫人——rcontact表
聊天記錄——message表
已發視頻信息——videoinfo2表
已發圖片信息——imginfo2表
已發語音信息——voiceinfo2表

而後若是手機微信選擇某一條信息刪除,而後db就會更新爲刪除後的表。

參考資料:
https://www.osslab.com.tw/how...
https://articles.forensicfocu...
https://blog.csdn.net/njweiyu...

相關文章
相關標籤/搜索