QQ2007Bate3协议分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QQ2007Bate3协议分析 ——登录认证篇 作者:charytang 联系方式:Email: runtang@ QQ:3398171 创建时间:2007年7月31日星期二 1.????? 说明: 本文以QQ2007Bate3版本(0x1051)为例,介绍QQ2007的登录认证过程与之前版本的变化。本文是以学习为目的的技术研究,不涉及任何商业利益。任何企业和个人与此文有关的商业行为,请与腾讯公司联系。 本文的协议分析过程为黑盒方式,必然会存在不准确的地方,故仅供读者参考。同时,本文借鉴了很多互联网中流传的技术资料,在这里就不一一列举! 转载请注明出处! 2.????? 名词解释: 本文使用到以下名称,在这里解释一下,方便读者理解 名称 描述 临时密钥 即可以在数据包中直接提取的加密密钥,一般是数据段的前16Bytes。 密码密钥 QQ密码,经过两次MD5散列后的16Bytes字符串 会话密钥 登录认证成功后,协商出的密钥(16Bytes),用于后续报文解密使用。 C?S 表示从客户端发向服务器端的报文 S?C 表示从服务器端发向客户端的报文 MD5 一种不可逆的散列算法,详细资料问google TEA 一种简单(微型)加密算法,QQ的主要加密方法,详细资料还是问google B3 指QQ2007Bate3版本 3.????? 与之前版本比较: 在B3(好像B2就变了,但没分析)中,登录认证过程发生了较大变化。主要是将密码验证的过程提前在0xdd中完成,之前版本应该是在0x22中完成。同时0x22(C?S)不再是简单的临时密钥加密,而是在0xdd(S?C)中产生密钥,这个包可是密码密钥加密的哦:)     2007Bate1及之前版本 QQ2007 Bate3版本  命令 方向 功能 解密 功能 解密 key 0x91 C?S 找服务器 临时密钥 找服务器 临时密钥 前16Bytes S?C 找服务器 临时密钥 找服务器 临时密钥 使用上面的 0x62 C?S 请求登录令牌 未加密 请求登录令牌 未加密 - S?C 响应登录令牌 未加密 响应登录令牌 未加密 - 0xba C?S 请求登录令牌 临时密钥 请求登录令牌 临时密钥 前16Bytes S?C 响应登录令牌 临时密钥 响应登录令牌 临时密钥 使用上面的 0xdd C?S 无   密码验证 临时密钥 前16Bytes S?C 无   响应密码验证 密码密钥 MD5(MD5(PW)) 0x22 C?S 登录请求 临时密钥 登录请求 临时密钥 在0xdd S?C 包中 S?C 登录响应 密码密钥 登录响应 密码密钥 MD5(MD5(PW)) 4.????? 原始数据包结构: 与之前版本基本没有变化,如下:(UDP承载情况,TCP自己分析去吧,差不多!) C?S: 字节 描述 0 0x02,报文开始 1-2 版本号,如2007B3为(0x1051) 3-4 命令 5-6 序列号 7-10 QQ号 11-N 数据段,基本是加密的 N+1 0x03,报文结束 S?C: 字节 描述 0 0x02,报文开始 1-2 版本号,如2007B3为(0x1051) 3-4 命令 5-6 序列号 7-N 数据段,基本是加密的 N+1 0x03,报文结束 原始数据包的构成基本与原来的版本一致,但略有不同。目前发现在0x22、0x18命令时会在数据段前增加一些结构数据,后文分析。 5.????? 数据包分析 下面只分析数据段的内容,其它不提了。 5.1.??? 查找服务器 0x91 此过程客户端会向多台服务器发送查找服务器请求,每个服务器响应是否会接受此连接,如果不接受则返回重定向的IP。 5.1.1. C?S: 原始数据段为0x30字节,其中前0x10为key(临时密钥),后0x20为密文数据。 初始客户端会发送 15个0x00,作为尝试连接。 后续的请求解密后格式如下 00 01 01 00 00 00 03 00 00 00 00 3a 3c 0e 21 后4Bytes指出从哪个服务器IP定向来的。 5.1.2. S?C: 密钥使用C?S时的临时密钥。 返回数据分为两种: 密文长度为0x20字节,解密后如 00 01 01 00 00 00 03 00 00 00 00 3a fb 3f 39 开始的00 01 应该表示此服务器不接受连接,指向下一服务器(后4Bytes为 IP)。 密文长度为0x10字节,解密后如 00 00 表示此服务器成功接受连接,不再重定向。 [注:可能会有多个服务器接受连接,客户端一般会选择第一个成功接受的服务器] 5.2.??? 请求登录令牌(一)

文档评论(0)

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

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

1亿VIP精品文档

相关文档