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

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

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

【 tulaoshi.com - QQ专区 】

  QQ聊天记录存储规则

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

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

  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聊天记录解密方法

  2.解密方法

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

  解密方法:

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

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

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

  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.结论

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

来源:https://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.勾选消息记...

经验教程

839

收藏

81

精华推荐

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