free789QQ资源网
 

系统安全之QQ聊天记录文件存储方式解密

本文发布于2007-02-13 22:26:44,浏览1200次,好评(0个)投一票
最近花了几天时间跟踪了一下“QQ聊天记录查看器 5.3 华军版”,总算把聊天记录的存储方法弄清了。大家不要笑我,只是好奇而已,呵呵。

1.聊天记录存储方式

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

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

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


|----MsgEx.db
|    |----C2CMsg
|        |----QQ号码
|            |----Data.msj
|            |----Index.msj
|    |----IMInfo
|        |----info.dat
|    |----Matrix
|        |----Matrix.db
|    |----SysMsg
|        |----10000
|            |----Data.msj
|            |----Index.msj
|    |----DiscMsg
|    |----GroupMsg
|    |----MobileMsg
|---------TempSessionMsg
 

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

2.解密方法

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

解密方法:

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

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

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

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

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

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

3.具体步骤

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

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

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

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


struct Record{
  char rType;
  short nLen;
  char Name[nLen];
  int rLen;
  char Content[rLen];
};
 

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

c.用Md5Key对pData进行BlowFish解密,得到全局密钥Key

4.结论

以上讨论的都是本地聊天记录没有加密的情况。如果选择了加密,没有密码是肯定解不出来滴,大伙就不用费心了。

 

======全球免费中心版权声明(本站从09-4-29开始加强免费资源版权管理)=========
不管出于何目的转载本文,请注明版权信息(包括来源和作者),否则一经发现将逐个处理。
若本站转了您的信息而未标明或标错或未找到出处而没标明的,请联系我们,2天内处理。

网友评论

 

因为目前没有时间可以管理评论,所以暂停评论功能!2009.12.19

 

随机推荐

专题与标签

本分类排行榜:

本分类好评榜:

全站随机推荐

© 2005-2020 free789免费中心 | Power by Free789 v18 | 联系我们 | 关于本站
如何访问 | 广告服务 | 免责声明 | 版权声明 闽公网安备 35052402000110号
GMT +8, 2024-04-30 03:34:58, Processed in 31.7ms 闽ICP备12008353号-2
本站程序和风格皆由站长飕飕然100%原创制作,谢绝模仿,违者必究。
本站页面兼容几乎所有主流浏览器,您可根据自己的喜好选择浏览器。
原名『全球免费中心』,于2013年6月16日改名为『free789免费中心』