《聊聊微信、qq數據庫解密》要點:
本文介紹了聊聊微信、qq數據庫解密,希望對您有用。如果有疑問,可以聯系我們。
最近看到網上有人專門針對如何破解qq、微信數據庫,本身也想試試,于是就有了此文,主要講下如何讀取聊天信息, 前提是需要一部 root 過的手機.
概述:
微信數據庫加密方式;
微信多賬戶數據讀?。?/p>
微信石友消息以及群消息;
QQ 消息加密方式;
QQ 討論組消息;
QQ 群消息;
QQ 多賬戶數據讀取;
1.微信數據庫加密方式:
微信數據庫加密方式已經有高人研究過了,就不細說了,主要是:
String password = [1, 7]md5(imei + uin)其中 imei 是手機的 IMEI 號, 在撥號界面輸入 *#06# 即可看到,有手機有兩個 IMEI 號,選擇第一個 IMEI 號,關于雙 IMEI 號如何讀取,請自行 google,不消重復造輪子了;uin 是微信為每個用戶分配的 id, 可以在如下路徑找到
\data\data\com.tencent.mm\shared_prefs\auth_info_key_prefs.xml
此中具體的信息如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="key_auth_info_prefs_created" value="true" />
<int name="key_auth_update_version" value="637864511" />
<int name="_auth_uin" value="*********" />
......
</map>
2.微信多賬戶數據讀取:_auth_uin 的值 value 即為 uin 值,在代碼中可以通過解析 xml 來讀取 uin 的值;然后將 imei 和 uin 相加計算 md5 的結果,取前 7 位的值即為暗碼.
當多個賬戶在同一個手機上使用時,就會存在多個賬戶的數據庫文件,但是在 auth_info_key_prefs 中只有當前用戶的 uin 的值,無法獲取到歷史的 uin 數據,不外仔細分析下數據庫目錄的父目錄:
/data/data/com.tencent.mm/MicroMsg/c8201023c5887895fabf25da90b5fab8/EnMicroMsg.db
經驗證,確實如此,知道了文件名的構成,可以逆推 uin 的值,只不過是個計算的問題.那么話說回來,只有逆推才能得出 uin 的值嗎?逆推有些繁瑣,那么有沒有簡單的辦法得到登錄過的所有的 uin 的值呢? 答案是肯定的,經過一番搜索,把每個目錄都翻遍了,終于發現了 app_brand_global_sp.xml.xml 文件,打開一看,大吃一驚,原來就是你,其中的具體信息如下:c8201023c5887895fabf25da90b5fab8 可以看出來是個 md5 值,這個已經有人研究過了.
文件名 = md5(mm + uin)
有了所有用戶的 uin, imei 號也知道了,還有什么不知道呢,剩下的便是擼代碼了.找的便是你,這個只是最新版微信測試的,之前的版本未測試.
3.微信石友消息及群消息讀?。?/p>
既然暗碼知道了,那么就開始解密數據庫了,工具 sqlcipher.exe,這個已經有前人編譯好的,直接下載用,打開數據庫,聊天消息盡收眼底.
3.1 好友消息與群消息的區別主要是 message 表中 talker 字段是否包含 @chatroom 字樣:
3.2 好友,包含群聊昵稱、id 在 rcontact 表中可以查到;
3.3 在 message 表中可以提取以下幾個字段,根本上就可知道,聊天的內容了:
4.QQ消息加密方式
qq 數據庫并沒有全庫加密,而是對每條消息進行加密, 加密的方式便是 uin 的 md5 值, uin 便是用戶的 qq 號碼,每個聊天都會對應一個表,表名命名規則:
mr_friend_New 石友聊天
mr_discussionuin_New 討論組聊天
mr_troop_New 群聊
其中大部分字段都是加密的,必要對應的 uin 的 md5 來解密.每張表里面只必要提取以下字段就夠了:
selfuin 本人的 uin | senderuin 發消息的 uin | msgtype 消息類型 | msgData 消息內容 | issend 是否為本人發送 | time 光陰
5.QQ討論組消息:
所有的討論組信息都在 discussionInfo 表中,可以找到討論組的 uin, 然后根據 uin 構造表名稱,根據表名稱去核對應的表信息
6.群消息;
所有群的相關信息都記錄在 TroopInfo 中,并且在 TroopStatisticsInfo 中記錄了群的總數,這樣一來就可以構造出每個群聊的表名稱,根據表名稱去查找對應的表信息即可
7.多賬戶數據讀?。?/p>
QQ 當前賬戶的號碼存儲在 \data\data\com.tencent.mobileqq\shared_prefs\Last_Login.xml 中:
<map>
<set name = "uin_set">
<string>-123847323</string>
<string>-923847323</string>
</set>
</map>
其中 uin 便是當前登錄的 qq 號碼
相比微信來說,QQ 多賬戶記錄讀取簡單很多,在 QQ 數據庫目錄中的所有的賬號數據庫都在此,一目了然,并無什么特其余技巧.
基本上就這么些東西了,借助前人的研究做起來還是比擬順暢,如果真要整理出每條聊天消息,還是需要花些功夫的.
好了,就寫到這里了,有什么不明確的可以留言!謝謝!
歡迎參與《聊聊微信、qq數據庫解密》討論,分享您的想法,維易PHP學院為您提供專業教程。