解密QQ聊天记录文件_第1页
解密QQ聊天记录文件_第2页
解密QQ聊天记录文件_第3页
解密QQ聊天记录文件_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑解密QQ聊天记录文件聊天记录存储规则

最近花了几天时间跟踪了一下“聊天记录查看器5.3”,总算把聊天记录的存储方法弄清了。大家不要笑我,只是好奇而已,呵呵。

聊天记录存储方式

聊天记录保存在MsgEx.db文件中。以前很早的版本是保存在Msg.db中,文件结构也与现在不同,我们就不分析了。

MsgEx.db采用Storage结构化存储。关于Storage复合文档的知识请查阅Microsoft相关文档,我们不做赘述。

大家可以用VC自带的DocFileView工具查看该文件的内容,可以看到文件结构大致如下:

|MsgEx.db

||C2CMsg

||号码

||Data.msj

||Index.msj

||IMInfo

||info.dat

||Matrix

||Matrix.db

||SysMsg

||10000

||Data.msj

||Index.msj

||DiscMsg

||GroupMsg

||MobileMsg

|TempSessionMsg

消息内容都存储在每个号码下面的Data.msj中,通过Index.msj索引。消息内容是经过加密处理的,必须经过解密才能看到。

聊天记录解密方法

消息内容采用BlowFish分组加密,每8个字节为一个分组。密钥Key通过号码生成,具体算法稍后讨论。

解密方法

a.取前8个字节,通过BlowFish解密,得到decryptKey;

b.decryptKey与后面8个字节XOR,对结果再进行一次BlowFish解密;

c.将decryptKey与前8个字节XOR,得到第一组结果;

d.decryptKey与后面8个字节XOR,重复b,c两步;

e.最终全部数据解密完毕。

最后会剩下一组8字节无法解密,这个实际上是冗余数据,似乎是用来作为校验的。

具体步骤

以上解密时,BlowFish的密钥是一个全局公用密钥Key。Key要通过号码生成,具体步骤是:

a.将号码进行MD5变换,得到Md5Key;

b.取Matrix.db的数据,对其进行解码。简单说一下Matrix.db文件的结构:

Matrix.db采用分块存储,每个Record包含类型、名字长度、名字、内容长度、内容几个字段组成。用数据结构表示就是:

structRecord{

charrType;

shortnLen;

charName[nLen];

intrLen;

charContent[rLen];

};

初始内容也是通过加密存储的。解密方法很简单:将长度的低位字节和高位字节XOR,得到key;将内容逐个与key进行XOR,就得到结果。对名字和内容分别进行解密即可。解密后会看到STL,TIP,CRK,CPH,CAH等字段,不清楚具体的含义,感兴趣的同学可以自己去研究研究。我们要用到的是CRK字段,长度为32字节(如果本地聊天记录加密,可能会有变化,没试过)。将得到的CRK字段作为pData。

c.用Md5Key对pData进行B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论