qq數據庫(qq數據庫解密)

博主:yunbaotangyunbaotang 2023-09-28 500 0條評論
摘要: 最近看到網上有人專門針對如何破解qq、微信數據庫,自己也想試試,于是就有了此文,主要講下如何讀取聊天信息, 前提是需要一部 root 過的手機。概述:微信數據庫加密方式;微信多賬戶...

最近看到網上有人專門針對如何破解qq、微信數據庫,自己也想試試,于是就有了此文,主要講下如何讀取聊天信息, 前提是需要一部 root 過的手機。

概述:

  • 微信數據庫加密方式;

  • 微信多賬戶數據讀??;

  • 微信好友消息以及群消息;

  • QQ 消息加密方式;

  • QQ 討論組消息;

  • QQ 群消息;

  • QQ 多賬戶數據讀?。?/p>

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.微信好友消息及群消息讀取:

既然密碼知道了,那么就開始解密數據庫了,工具 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.多賬戶數據讀取;

  • 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 數據庫目錄中的所有的賬號數據庫都在此,一目了然,并無什么特別的技巧。

基本上就這么些東西了,借助前人的研究做起來還是比較順暢,如果真要整理出每條聊天消息,還是需要花些功夫的。