


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、qqmsgex.db 分析最近花了幾天時(shí)間跟蹤了一下“qq 聊天記錄查看器 5.3 華軍版” ,總算把 聊天記錄的存儲(chǔ)方法弄清了。大家不要笑我,只是好奇而已,呵呵。 1.聊天記 錄存儲(chǔ)方式 qq 聊天記錄保存在 msgex.db 文件中。以前很早的版本是保存在 msg.db 中,文件結(jié)構(gòu)也與現(xiàn)在不同,我們就不分析了。 msgex.db 采用 storage 結(jié)構(gòu)化存儲(chǔ)。關(guān)于 storage 復(fù)合文檔的知識(shí)請查閱 microsoft 相關(guān)文檔,我們不做贅述。 大家可以用 vc 自帶的 docfile view 工具查看該文件的內(nèi)容, 可以看到文件結(jié) 構(gòu)大致如下: |-msgex.db | |-i
2、ndex.msj | |-matrix.db | |-index.msj | |-c2cmsg | |-iminfo | |-sysmsg | |-discmsg | |-qq 號(hào)碼 | |-info.dat | |-10000 | |-groupmsg | |-data.msj | |-matrix | |-data.msj | |-mobilemsg|-tempsessionmsg 消息內(nèi)容都存儲(chǔ)在每個(gè)號(hào)碼下面的 data.msj 中,通過 index.msj 索引。 消息內(nèi)容是經(jīng)過加密處理的,必須經(jīng)過解密才能看到。 2.解密方法消息內(nèi)容采用 blowfish 分組加密。每 8 個(gè)字節(jié)為一
3、個(gè)分組。密鑰 key 通過 qq 號(hào)碼生成,具體算法稍后討論。 解密方法: a.取前 8 個(gè)字節(jié),通過 blowfish 解密,得到 decryptkey; b.decryptkey 與后面 8 個(gè)字節(jié) xor,對結(jié)果再進(jìn)行一次 blowfish 解密; c.將 decryptkey 與前 8 個(gè)字節(jié) xor,得到第一組結(jié)果; d.decryptkey 與后面 8 個(gè)字節(jié) xor,重復(fù) b,c 兩步; e.最終全部數(shù)據(jù)解密完畢。最后會(huì)剩下一組 8 字節(jié)無法解密,這個(gè)實(shí)際上是 冗余數(shù)據(jù),似乎是用來作為校驗(yàn)。 3.具體步驟以上解密時(shí),blowfish 的密鑰是一個(gè)全局公用密鑰 key。key 要通
4、 過 qq 號(hào)碼生成,具體步驟是: a.將 qq 號(hào)碼進(jìn)行 md5 變換,得到 md5key b.取 matrix.db 的數(shù)據(jù),對其進(jìn)行解碼。簡單說一下 matrix.db 文件的結(jié)構(gòu):matrix.db 采用分塊存儲(chǔ),每個(gè) record 包含類型、名字長度、名字、內(nèi)容長度、 內(nèi)容幾個(gè)字段組成。用數(shù)據(jù)結(jié)構(gòu)表示就是:struct record char rtype; short nlen; char namenlen; intrlen; char contentrlen; ; 初始內(nèi)容也是通過加密存儲(chǔ)的。 解 密方法很簡單:將長度的低位字節(jié)和高位字節(jié) xor,得到 key;將內(nèi)容逐個(gè)與 key
5、 進(jìn)行 xor, 就得到結(jié)果。 對名字和內(nèi)容分別進(jìn)行解密即可。 解密后會(huì)看到 stl, tip, crk, cph, cah 等字段,不清楚具體的啥含義,感興趣的同學(xué)可以自己去研究研 究。我們要用到的是 crk 字段,長度為 32 字節(jié)(如果本地聊天記錄加密,可能 會(huì)有變化,沒試過) 。將得到的 crk 字段作為 pdata。 c.用 md5key 對 pdata 進(jìn)行 blowfish 解密, 得到全局密鑰 key 4.結(jié)論以上討論 的都是本地聊天記錄沒有加密的情況。如果選擇了加密,沒有密碼是肯定解不出 來滴,大伙就不用費(fèi)心了。qq 的安全問題qq,就是 oicq,tencent 公司研發(fā)的
6、即時(shí)信息軟件,是中國市場上國產(chǎn) im 軟件絕對的老大。中國網(wǎng)民幾乎人手至少一個(gè) qq 號(hào)碼。大家都比我清楚,不多 介紹。 本文談?wù)?qq 的安全問題。 qq 具有如此驚人的人氣,卻有著與之不相稱的安全問題?;旧峡梢哉f, 使用 qq,基本沒有任何隱私可言!另外它也為你的電腦帶來了諸多附送的安全 隱患。有識(shí)之士如我都早已不用 qq 啦。 一,本地密碼保存方式 qq 的客戶端會(huì)不經(jīng)用戶同意,把用戶的密碼經(jīng)過數(shù)萬次的 md5 運(yùn)算后存在本地。每次登陸在發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包之前進(jìn)行本地驗(yàn) 證,相信熟悉 qq 的朋友對這一點(diǎn)都不陌生。這樣事實(shí)上給了攻擊者暴力破解 qq 密碼的機(jī)會(huì),只要攻擊者得到本地保存的這個(gè)
7、數(shù)據(jù)即可。這個(gè)文件曾經(jīng)叫 ewh.db 或者 user.db, 不知道現(xiàn)在是否又變了。 說明一點(diǎn), 由于 md5 作了數(shù)萬次, 這樣的破解效率不高,但再低的效率也有弱智密碼中招,當(dāng)年在線嘗試登陸都可 以,還有什么不可能呢?如果選擇了自動(dòng)登陸,那么密碼的一次 md5 保存在 oicq2000.cfg 中,破解速度大大提高。二,本地聊天記錄查看漏洞典型的攻擊場景是:已經(jīng)拿到全部本地記錄,就 是一個(gè)以 qq 號(hào)為名的文件夾,不知道密碼(或者俗稱忘記了密碼,求助者多數(shù) 號(hào)稱是 mm)如何查看其聊天記錄? qq 登陸的流程是這樣的:1.輸入用戶名密碼->2.本地驗(yàn)證通過->3.得到用戶界面(
8、企鵝開始閃動(dòng))->4.發(fā)送登陸包->5.收 到登陸包成功響應(yīng)->6.登陸成功。其中在步驟 3 的時(shí)候,我們就可以查看聊天記 錄了。如果 2 失敗,則要求重新輸入密碼;如果 5 失敗,則退出步驟 3 中得到的 用戶界面。對于沒有正確密碼的攻擊者來說,要保持 3 的狀態(tài)以查看本地聊天記 錄,需要首先騙過 2,并防止 4 發(fā)生。由于 qq 沒有軟件加密(加殼) ,所以 2 十分容易,修改一個(gè)跳轉(zhuǎn)就 ok。4 就更容易了,拔了網(wǎng)線或設(shè)置防火墻就可以 了?,F(xiàn)在網(wǎng)上有很多這樣的修改教程和修改好的客戶端。所以不再贅述。 三,本地聊天記錄的加密方法事實(shí)上以上第二條所說是一個(gè)利用已有客戶端 簡
9、單規(guī)避本地檢查的辦法。如果你愿意,可以自己寫一個(gè)查看聊天記錄的工具, 因?yàn)樗募用芊绞绞侨绱说拇嗳?。首先普及一點(diǎn)常識(shí):tea 算法(tiny encryption algorithm,即微型加密算法)是一個(gè)正規(guī)的密碼學(xué)意義上的加密算法,你可以在 http:/www.ftp.cl.cam.ac.uk/ftp/papers/djw-rmn/djw-rmn-tea.html 找到原作者對 其的介紹。 qq 的加密,包括本地文件加密和遠(yuǎn)程數(shù)據(jù)包加密,主要使用的就是這個(gè)算 法。值得注意的是原作者使用的是 32 輪運(yùn)算(即使是 32 輪,這個(gè)算法也被證明 是可以已知明文攻擊的) ,然而 tencent 將其降為了 16 輪。時(shí)間上省了一半, 但安全性卻嚴(yán)重下降。算法常識(shí)以后再講,我們只要知道該算法是公開的就可以 了。 (廢話,不公開哪來的那么多開源 qq,比如 lumaqq) 。 qq 本地歷史數(shù)據(jù),包括聊天記錄和一些日志,用一個(gè) key 加密后存在本地 msg.db 或者 msgex.db 中,但是這個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)墻抹灰工程勞務(wù)分包合同
- 勞務(wù)外包員工合同
- 項(xiàng)目會(huì)議記錄與總結(jié)報(bào)告
- 旅游公司客戶行程中意外事件處理協(xié)議
- 礦山環(huán)境治理與生態(tài)恢復(fù)合同
- 智慧城市綜合管理平臺(tái)建設(shè)與運(yùn)營方案設(shè)計(jì)
- 環(huán)??萍紕?chuàng)新中心合作協(xié)議
- 個(gè)人茶園承包合同
- 蔬菜基地土地承包合同
- 境外投資項(xiàng)目銀行貸款合同
- 《電力系統(tǒng)規(guī)劃》第1章
- 高二歷史【開學(xué)第一課】2022年高中秋季開學(xué)指南之愛上歷史課
- 人間生活(外國部分)
- 2023年TOFD檢測通用工藝規(guī)程參考版
- 物業(yè)保潔團(tuán)隊(duì)建設(shè)與管理
- 高三數(shù)學(xué)試題(含答案)
- 施工班組考核評分表
- 脫碳塔CO2脫氣塔設(shè)計(jì)計(jì)算
- 《駱駝祥子》通讀指導(dǎo)手冊
- 股東會(huì)會(huì)議系列文件(通知、議程、簽到表、表決票、決議)
- 口腔種植術(shù)單病種質(zhì)控查檢表
評論
0/150
提交評論