a您现在的位置: 主页 > QQ黑客资讯 > qq聊天记录 > 文章内容

最近花了几天时间跟踪了QQ技巧QQ黑客QQ聊天记录文件存储方式解密

作者: qq黑客 来源:未知 时间: 2013-07-22 阅读: qq聊天记录
QQ技巧QQ黑客QQ聊天记录文件存储方式解密
最近花了几天时间跟踪了一下"QQ聊天记录查看器 5.3 华军版",总算把聊天记录的存储方法弄清了。大家不要笑我,只是好奇而已,呵呵。

  1.聊天记录存储方式

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

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

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

 

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|----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分组加www.hack361.com密。每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包含类型、名字长度、名字、内容长度、内容几个字段组成。用数据结构表示就是:

 

双击代码全选
1
2
3
4
5
6
7
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.结论

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

(文章来自QQ黑客基地www.tj6.net TJ6门户网站)
盗号网站|盗QQ|盗QQ号教程|盗QQ号密码|盗QQ号码|盗QQ密码软件|恢复QQ聊天记录|怎么破解QQ密码|怎样盗QQ密码|怎么盗QQ|怎样破解QQ号|黑客技术|QQ密码暴力破解器|盗号方法|盗号软件|怎么盗QQ|盗QQ密码|恢复QQ聊天记录|盗QQ软件|QQ密码破解软件|QQ黑客工具|免费黑客网|黑客基地|黑客联盟_www.heike.hk