网站大量收购独家精品文档,联系QQ:2885784924

解密QQ聊天记录文件.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解密QQ聊天记录文件   QQ聊天记录存储规则   最近花了几天时间跟踪了一下“QQ聊天记录查看器 5.3”,总算把聊天记录的存储方法弄清了。大家不要笑我,只是好奇而已,呵呵。      聊天记录存储方式   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聊天记录解密方法   消息内容采用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字节无法解密,这个实际上是冗余数据,似乎是用来作为校验的。      具体步骤   以上解密时,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

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档