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