日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁騰訊專區(qū)QQ安全 → QQ聊天記錄數(shù)據(jù)庫DB探析

      QQ聊天記錄數(shù)據(jù)庫DB探析

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:網(wǎng)絡(luò)時間:2010/4/24 17:17:46字體大小:A-A+

      作者:佚名點(diǎn)擊:3844次評論:0次標(biāo)簽: 黑客

      • 類型:SIM模擬經(jīng)營大。560M語言:中文 評分:10.0
      • 標(biāo)簽:
      立即下載

      QQ聊天記錄文件存儲方式解密
      最近花了幾天時間跟蹤了一下“QQ聊天記錄查看器 5.3 華軍版”,總算把聊天記錄的存儲方法弄清了。大家不要笑我,只是好奇而已,呵呵。
      1.聊天記錄存儲方式
      QQ聊天記錄保存在MsgEx.db文件中。以前很早的版本是保存在Msg.db中,文件結(jié)構(gòu)也與現(xiàn)在不同,我們就不分析了。
      MsgEx.db采用Storage結(jié)構(gòu)化存儲。關(guān)于Storage復(fù)合文檔的知識請查閱Microsoft相關(guān)文檔,我們不做贅述。
      大家可以用VC自帶的DocFile View工具查看該文件的內(nèi)容,可以看到文件結(jié)構(gòu)大致如下:

      |----MsgEx.db
      | |----C2CMsg
      | |----QQ號碼
      | |----Data.msj
      | |----Index.msj
      | |----IMInfo
      | |----info.dat
      | |----Matrix
      | |----Matrix.db
      | |----SysMsg
      | |----10000
      | |----Data.msj
      | |----Index.msj
      | |----DiscMsg
      | |----GroupMsg
      | |----MobileMsg
      |---------TempSessionMsg
      消息內(nèi)容都存儲在每個號碼下面的Data.msj中,通過Index.msj索引。消息內(nèi)容是經(jīng)過加密處理的,必須經(jīng)過解密才能看到。
      2.解密方法
      消息內(nèi)容采用BlowFish分組加密。每8個字節(jié)為一個分組。密鑰Key通過QQ號碼生成,具體算法稍后討論。
      解密方法:
      a.取前8個字節(jié),通過BlowFish解密, 得到decryptKey;
      b.decryptKey與后面8個字節(jié)XOR,對結(jié)果再進(jìn)行一次BlowFish解密;
      c.將decryptKey與前8個字節(jié)XOR,得到第一組結(jié)果;
      d.decryptKey與后面8個字節(jié)XOR,重復(fù)b,c兩步;
      e.最終全部數(shù)據(jù)解密完畢。
      最后會剩下一組8字節(jié)無法解密,這個實際上是冗余數(shù)據(jù),似乎是用來作為校驗。
      3.具體步驟
      以上解密時,BlowFish的密鑰是一個全局公用密鑰Key。Key要通過QQ號碼生成,具體步驟是:
      a.將QQ號碼進(jìn)行MD5變換,得到Md5Key
      b.取Matrix.db的數(shù)據(jù),對其進(jìn)行解碼。簡單說一下Matrix.db文件的結(jié)構(gòu):
      Matrix.db采用分塊存儲,每個Record包含類型、名字長度、名字、內(nèi)容長度、內(nèi)容幾個字段組成。用數(shù)據(jù)結(jié)構(gòu)表示就是:
      struct Record{
      char rType;
      short nLen;
      char Name[nLen];
      int rLen;
      char Content[rLen];
      };
      初始內(nèi)容也是通過加密存儲的。解密方法很簡單:將長度的低位字節(jié)和高位字節(jié)XOR,得到key;將內(nèi)容逐個與key進(jìn)行XOR,就得到結(jié)果。對名字和內(nèi)容分別進(jìn)行解密即可。解密后會看到STL, TIP, CRK, CPH, CAH等字段,不清楚具體的啥含義,感興趣的同學(xué)可以自己去研究研究。我們要用到的是CRK字段,長度為32字節(jié)(如果本地聊天記錄加密,可能會有變化,沒試過)。將得到的CRK字段作為pData。
      c.用Md5Key對pData進(jìn)行BlowFish解密,得到全局密鑰Key
      4.結(jié)論
      以上討論的都是本地聊天記錄沒有加密的情況。如果選擇了加密,沒有密碼是肯定解不出來滴,大伙就不用費(fèi)心了。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        第 2 樓 四川成都鐵通ADSL 網(wǎng)友 客人 發(fā)表于: 2014/3/17 14:13:40
        hehe

        支持( 0 ) 蓋樓(回復(fù))

        第 1 樓 四川成都鐵通ADSL 網(wǎng)友 客人 發(fā)表于: 2010/12/2 17:00:37

        支持( 0 ) 蓋樓(回復(fù))

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)