最近在研究解密微信APP的數據庫,
1、通過Android手機內置備份功能,可以獲取到微信的數據庫文件,再通過adb傳到電腦上。
2、獲取微信EnMicroMsg.db庫的密碼(通過IMEI和uin值)
方法見網頁:http://www.wjdiankong.cn/android%E9%80%86%E5%90%91%E4%B9%8B%E6%97%85-android%E4%B8%AD%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%9C%A8%E9%9D%9Eroot%E8%AE%BE%E5%A4%87%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BA%94%E7%94%A8%E9%9A%90/
3、有了密碼就可以使用工具查看數據庫的內容,sqlcipher官方的解密功能是要收費的,不過牛比的網友們已經實現了免費的查看功能,並且有windows系統下的。具體工具可以百度。
4、但是我們寫程序是要在代碼中實現的,不可能告訴用戶你自己去查看數據庫,自己去組織數據結構。。。
代碼實現在網上也可以搜到,但我試了很多,基本沒有可以拿來直接使用的。
我自己研究了一下,要用代碼實現,步驟如下:
(1)sqlite3_key
(2)執行命令:PRAGMA cipher_migrate;
用3.X的開源庫兼容2.X的加密解密方法。因為微信用的是2.x版本的sqlite,而現在基本是3.x版本的sqlite庫.
此處很耗時,如果可以直接使用2.x版本的庫更好。
(3)自由查看各個表。微信聯系人、公眾號、群組等都在rcontact表中,聊天記錄都在message表中,在chatroom表中也可以查看群組信息。