解密QQ聊天记录文件存储方式

2016-02-21 00:13 6 1 收藏

今天图老师小编给大家精心推荐个解密QQ聊天记录文件存储方式教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - QQ专区 】

  QQ聊天记录存储规则

  最近花了几天时间跟踪了一下"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索引。消息内容是经过加密处理的,必须经过解密才能看到。

  QQ聊天记录解密方法

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  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];

  };

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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

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

  4.结论

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

来源:http://www.tulaoshi.com/n/20160221/1650268.html

延伸阅读
标签: 电脑入门
由于很多朋友电脑都是公用的,QQ可能都是同时挂着,聊完QQ,为了保密起见大家不想将QQ聊天记录保存下来,大家都可以将QQ聊天记录删除掉,已保证自己的隐私安全。于是就有不少网友在网上问QQ聊天记录在哪个文件夹里,要去哪里删除QQ聊天记录的有关问题,下面图老师小编就给大家介绍几种找到 qq聊天记录文件夹的方式。 1、QQ老版本聊天记录一般...
手机qq聊天记录怎么删除   1、大家在与好友聊天时,可以发现右上角的菜单键,点击进入,如图; 2、进入菜单键后可以看到下方的聊天记录,点击进入; 3、聊天记录可以下载,也可以删除,点击右下角删除标志; 4、这个时候会出现删除手机聊天记录或是漫游聊天记录,靠你选择啦!漫游聊天记录是QQ会员专享特权。 ...
手机QQ怎么导出聊天记录   1.打开手机QQ,进入某位好友的聊天界面 2.点击右上角的 3.选择 4.选择底部 5.弹出提示,点击 6.聊天记录导出成功,去上一步提示的文件夹查看即可
手机qq如何删除聊天记录?   第一步、打开手机qq,用手指向右滑动,点击设置。 第二步、在设置页面,我们点击聊天记录。 第三步、聊天记录页面中,我们点击清空所有聊天记录,即可以清空手机qq的聊天记录。 第四步、这时,系统会弹出确认窗口,你点击清空所有聊天记录即可。
 1.把以前的聊天记录文件夹保存到另一个指定的文件夹里。    2.登入新下载的QQ。   3.找到QQ主面板的小喇叭图标。   4.然后找到导入和导出边上的箭头。—导入消息记录。   5.勾选消息记...

经验教程

74

收藏

97

精华推荐

手机QQ聊天记录在哪个文件夹里

手机QQ聊天记录在哪个文件夹里

大白象呀

手机QQ怎么查看聊天记录

手机QQ怎么查看聊天记录

nygjh14

QQ2024聊天记录在哪?

QQ2024聊天记录在哪?

年轻北漂

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部