QQ聊天记录存储方式

news/2024/11/2 6:26:21/

 QQ聊天记录存储规则    -- 网上转载

 

  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解密;

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

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


http://www.ppmy.cn/news/132289.html

相关文章

QQ聊天记录的相关代码

<!DOCTYPE html><html><head lang"en"><meta charset"UTF-8"><title>QQ聊天框</title><link rel"stylesheet" href"css/mycss.css"/></head><body><section><div>…

QQ群的一次聊天记录

上次写了 SDK中的消息机制 后有位网友给我留言说 留言于下、、 看了文章之后&#xff0c;写了一个CloseAll的程序&#xff1a; //------------------------ #include <windows.h&…

ubuntu中查看qq聊天记录

聊天记录在home/用户名/.tencent目录下&#xff0c;默认情况下这个目录是隐藏的&#xff0c;可以通过Ctrl&#xff0b;H来显示里面的内容。不过好像里面的内容是加密的&#xff0c;不过可以找到图片&#xff0c;在AppData/file目录下。

如何导入以前的qq聊天记录

作者&#xff1a;朱金灿 来源&#xff1a;http://blog.csdn.net/clever101 在新版的qq2013已经可以设置聊天记录的保存路径&#xff0c;但是如何把以前的聊天记录都导入进来呢&#xff1f;今天找到了办法。首先把原来qq安装目录下的\Tencent\QQ\Users文件夹拷贝出来。然后用新…

如何电脑上怎样查看微信聊天记录

很多人都会用微信相互用语音聊情话&#xff0c;那么查看并保存微信的聊天记录呢&#xff1f;小猪研究了好几天&#xff0c;在这里把方法分享给大家&#xff0c;希望对同样有这方面想法的大家有帮助。如果您是查询别人的微信聊天记录和语音聊天信息可以联系我们的客服&#xff0…

QQ聊天记录如何加密

原文链接&#xff1a;http://www.baiyikeji.com/rjgc/265.htm QQ&#xff0c;就是OICQ&#xff0c;TENCENT公司研发的即时信息软件&#xff0c;是中国市场上国产IM软件绝对的老大。中国网民几乎人手至少一个QQ号码。大家都比我清楚&#xff0c;不多介绍。 本文谈谈QQ的安全问…

QQ聊天记录

XXXXXX 13:00:21 那几个国家风景不错&#xff0c;听说晚上很安静&#xff0c;听得我心旷神怡哦 sandrain_zeq 13:00:09 呵呵 sandrain_zeq 13:00:18 现在就想过去了呀 XXXXXX 13:01:15 就是啊&#xff0c;我还要到申请的学校网站联系老师之类的&#xff0c;写信啊 &#xff0…

手机QQ聊天记录备份

0 前言 本文重点总结如何备份手机QQ的聊天记录。 1 手机qq自带功能 1.1 聊天记录漫游 一般而言&#xff0c;手机QQ可以提供7天的免费漫游服务&#xff0c;若要更久的漫游(比如30天)&#xff0c;就要开通VIP会员。因此&#xff0c;这种聊天记录的备份方式不是首选。 1.2 导出…