`
hereson2
  • 浏览: 469831 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对qq2007版本登录过程的协议分析

阅读更多
   最近对QQ和MSN的通信协议比较感兴趣,所以经过一些资料搜寻对手头上的QQ进行了以下分析。目前使用的qq是2007Beta1 V07.0.101.173版本。
主要的参考资料是Red_AngleX对QQ2006登录协议包的一些分析,地址是http://blog.csdn.net/red_angelx/archive/2006/11/13/1381351.aspx 我只是按照步骤将我的分析过程记录了下来

  在这里我使用的抓包工具是Ethereal(的确很难用,拼数据包,把我拼得半死),下面是QQ登录时候数据包的一个截图

另外还用到一个工具就是QQDebug,用来TEA加密解密的,大家可以搜搜,如果没有也可以找我要。

好了,让我们开始吧:
,QQ的数据包分为发出的包和接收的包两种,总体来说这两种数据包都包含3部分,包头,加密包体,包尾,只是出和入的包头有些不同

11位包头

00     0x02  QQ数据包开始标志

01-02       QQ的版本号,2006B3为0x0f4b

03-04       请求的命令

05-06       随机序列号,标志包的唯一性

07-10       4个字节的QQ号码   例如 76147561 就是 04 89 eb 69



0000  00 90 1a a0 de 3f 00 0d  87 b0 dd 0b 88 64 11 00   .....?.. .....d..

0010  0f a6 00 52 00 21 45 00  00 50 57 e0 00 00 40 11   ...R.!E. .PW...@.

0020  5d 30 3a 3c 73 b8 db 85  3c 13 0f a0 1f 40 00 3c   ]0:<s... <....@.<

0030  4b b2 02 10 1f 00 ba 7e  19 04 89 eb 69 49 5c bd   K......~ ....iI\.

0040  3b 90 18 18 c2 74 3f 6e  a0 79 92 8b 42 c1 18 68   ;....t?n .y..B..h

0050  42 00 5a 9f 8b f2 02 f6  e6 e8 b4 1a 14 0d 44 c2   B.Z..... ......D.

0060  e2 e1 96 d6 fe 03                 ..1..v.. l.    

【包分析】

这是向腾讯服务器发出的LOGINTOKEN 数据请求包,特征是请求命令00 ba

02就是数据包的开始标志

10 1f QQ的版本号,我这里是2007版本的

00 ba 请求命令。ba是请求LoginToken。命令QQ_CMD_REQUEST_LOGINTOKEN = 0xba;

7e  19 随机序列号,标志包的唯一性

04 89 eb 69 我的qq号码,可以直接使用计算器将04 89 eb 69 以16进制输入,再直接转为10进制就是76147561.所以分析时候也可以将分析的qq号码输入计算器后直接转为16进制后再在包内数据中查找即可。接下去的数据就是包体了

49 5c bd 3b 90 18 18 c2 74 3f 6e a0 79 92 8b 42 是key值,即是进行TEA加密解密的密钥

03 是数据包结束的标志,也就是包尾





0000  00 0d 87 b0 dd 0b 00 90  1a a0 de 3f 88 64 11 00   ........ ...?.d..

0010  0f a6 00 56 00 21 45 00  00 54 00 00 40 00 3a 11   ...V.!E. .T..@.:.

0020  7b 0c db 85 3c 13 3a 3c  73 b8 1f 40 0f a0 00 40   {...<.:< s..@...@

0030  2b bb 02 10 1f 00 ba 7e  19 dc f3 57 63 99 3e 08   +......~ ...Wc.>.

0040  f8 2e e8 22 18 93 ea 9e  bb 39 0e 48 8d 04 be af   ...".... .9.H....

0050  06 54 95 70 ae 82 79 df  d3 67 4d ab 6d bf d1 e9   .T.p..y. .gM.m...

0060  1c e4 59 69 31 fa 54 f9  3a 03                     ..Yi1.T. :.

【包分析】

这是腾讯服务器返回的LOGINTOKEN 数据包,特征是请求命令00 ba

00表示请求成功

02 10 1f 00 ba 7e  19 这段数据和上次向腾讯服务器发出的请求数据的意义是一样的。

dc f3 57 63 99 3e 08 f8 2e e8 22 18 93 ea 9e bb 39 0e 48 8d 04 be af 06 54 95 70 ae 82 79 df d3 67 4d ab 6d bf d1 e9 1c e4 59 69 31 fa 54 f9 3a 这串数据是服务器返回的数据,是经过TEA加密过的。所以要使用刚才请求数据包中的key值作为密钥来解密

以下是解密的结果:

01 00 05 00 00 20 48 A4 AF 3E A8 0D 8D D5 E6 7A 21 4D 91 21 69 1B 2D 61 B8 F9 71 EE 02 10 FB 83 33 C1 5E 5C E8 C3

【结果分析】

20是LoginToken长度 也是16进制,换成十进制就是32 可以数数后面的数据也是32位

48 A4 AF 3E A8 0D 8D D5 E6 7A 21 4D 91 21 69 1B 2D 61 B8 F9 71 EE 02 10 FB 83 33 C1 5E 5C E8 C3 粉红色部分为请求的LoginToken







0000   00 90 1a a0 de 3f 00 0d 87 b0 dd 0b 88 64 11 00  .....?.......d..

0010   0f a6 02 0a 00 21 45 00 02 08 57 e3 00 00 40 11  .....!E...W...@.

0020   5b 75 3a 3c 73 b8 db 85 3c 13 0f a0 1f 40 01 f4  [u:<s...<....@..

0030   37 bb 02 10 1f 00 22 7e 1c 04 89 eb 69 d9 d3 67  7....."~....i..g

0040   95 fc e3 06 8a e8 fb 6a 98 50 51 01 44 6b 6a 4e  .......j.PQ.DkjN

0050   ba c7 76 b5 05 a8 53 d5 b6 61 87 e8 13 8e 5d 6c  ..v...S..a....]l

0060   5e c2 45 ef bc 60 28 63 68 8e 34 57 ef e5 f9 80  ^.E..`(ch.4W....

0070   c5 a5 37 00 99 85 76 67 61 70 31 ac d9 86 ed 1b  ..7...vgap1.....

0080   2a 53 9b ee 66 9f 93 36 44 db ac ec 2b 2a 13 ee  *S..f..6D...+*..

0090   b2 82 3a 5d bb 51 42 76 bc 2d c3 80 10 c0 b6 9c  ..:].QBv.-......

00a0   b1 f6 f8 e0 77 e6 21 6b 89 90 d9 ed d0 97 d5 5b  ....w.!k.......[

00b0   ea 3c bd 4b f9 2a 72 b2 81 2e 92 09 43 68 5e b1  .<.K.*r.....Ch^.

00c0   36 fd 9a 27 df 05 27 66 05 98 92 ae 1b e7 3d 1f  6..'..'f......=.

00d0   b9 46 3c 1f fc b8 b9 78 91 0e bb 14 64 96 e5 0f  .F<....x....d...

00e0   df 08 3f ca 7e 13 56 a3 f9 07 8d f7 d6 12 ba 42  ..?.~.V........B

00f0   87 59 15 ca b5 99 7f 63 1d b9 6d 4c a8 b0 24 ba  .Y.....c..mL..$.

0100   fb e4 cb 7e 50 17 1e 82 c0 05 79 eb 7a 58 29 d4  ...~P.....y.zX).

0110   9f 40 2c 19 bb a6 31 ac fc 33 13 9d 79 5a fb 36  .@,...1..3..yZ.6

0120   99 a2 5b ae b7 ee 80 25 7d 63 aa 7e b2 3d d2 01  ..[....%}c.~.=..

0130   91 1f ac b0 68 cf e8 e9 3c 42 9f df 2b 5b 0c c6  ....h...<B..+[..

0140   b8 21 ef 84 7e 45 d0 51 b5 bf bc 0f ad 4a e9 98  .!..~E.Q.....J..

0150   94 0e 79 39 69 b1 76 9f 2f c4 3a bb 8e c3 f6 b7  ..y9i.v./.:.....

0160   5c 00 ac 44 43 94 b0 e2 09 2f 49 dd 7f aa ce 41  \..DC..../I....A

0170   2b d2 43 e0 ec 83 9c 7e 97 39 87 25 cf e7 9f bc  +.C....~.9.%....

0180   19 4c 30 97 2d 06 f1 e8 09 b0 21 47 ea 56 36 54  .L0.-.....!G.V6T

0190   71 1c b4 26 1b ba ac 4d dc 19 81 d0 5c 38 99 94  q..&...M....\8..

01a0   e8 82 80 1a 0b 2f 87 db e5 04 ce 27 c1 6c ce ed  ...../.....'.l..

01b0   94 ad 4a cb a5 9f c9 b5 f5 a9 e4 61 2e 53 6c 13  ..J........a.Sl.

01c0   ad 80 3e 76 85 92 e5 4f 12 97 1e d3 f2 54 d2 03  ..>v...O.....T..

01d0   82 9f 88 48 38 ec 52 b2 99 bf a1 90 bf 37 a1 13  ...H8.R......7..

01e0   e3 f0 e5 39 ed 3d 26 80 f1 d4 8e 52 9c 2e 1e 89  ...9.=&....R....

01f0   4b 98 6b 71 97 48 24 93 46 2a 2e 4b 5b 87 21 6c  K.kq.H$.F*.K[.!l

0200   fc a2 06 e0 bd 76 50 af 64 81 63 78 05 2f 64 e9  .....vP.d.cx./d.

0210   48 01 3b 1a 7a f5 a3 87 f6 a4 b4 92 96 03        H.;.z.........

【包分析】

这是登录请求数据包,特征是00 22

10 1f 00 22 7e 1c 04 89 eb 69 这段数据和上次向腾讯服务器发出的请求数据的意义是一样的。

d9 d3 67 95 fc e3 06 8a e8 fb 6a 98 50 51 01 44  是加密key

接下去的部分是加密部分,需要用TEA解开,解密后结果如下:

E5 4D 37 99 C4 3C 66 10 D2 79 95 FE EB 1B 64 C4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 73 40 21 74 2F 9D E5 A1 07 7E 7F C3 6D 1E 4A 93 E6 28 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FC B7 21 55 72 D7 F3 42 80 6F 83 9F A0 78 B7 8C 20 48 A4 AF 3E A8 0D 8D D5 E6 7A 21 4D 91 21 69 1B 2D 61 B8 F9 71 EE 02 10 FB 83 33 C1 5E 5C E8 C3 01 40 01 AF 3C A6 36 00 10 47 EF BF 4F 8B 46 53 C1 0F 87 D7 8D 45 B0 FA 2F 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 44 79 10 AC 00 10 63 E5 13 95 F7 67 84 3C 12 84 D4 8C 4A FF F4 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

【结果分析】

000 - 015 : E5 4D 37 99 C4 3C 66 10 D2 79 95 FE EB 1B 64 C4

是以用户密码的2次MD5计算后的值为密钥加密空字节流的结果。用密码的两次MD5作为密钥加密任意一个东西,服务器只看能不能正常解密,其他的不管.有人分析说这个东西变了,其实只是有些解密工具解不出这个包(可能是官方加的空字串),但是确是还是用TEA加密的.

比如我的密码2次MD5加密后是6D 26 7D B4 D1 55 40 7E 44 F8 2D 9E E7 3A B0 30,将其作为密钥key,解密E5 4D 37 99 C4 3C 66 10 D2 79 95 FE EB 1B 64 C4得出来的结果就是一个空字符串,什么也没有



016 - 051 固定组合

052:登录方式 登录方式 正常 0x0a,隐身 0x28

053 - 093 固定组合

094 LoginToken的长度  这个版本是0x20 也就是32位长

095 - 127 LoginToken内容

48 A4 AF 3E A8 0D 8D D5 E6 7A 21 4D 91 21 69 1B 2D 61 B8 F9 71 EE 02 10 FB 83 33 C1 5E 5C E8 C3 01

余下的是固定组合







0000   00 0d 87 b0 dd 0b 00 90 1a a0 de 3f 88 64 11 00  ...........?.d..

0010   0f a6 00 ee 00 21 45 00 00 ec 00 00 40 00 3a 11  .....!E.....@.:.

0020   7a 74 db 85 3c 13 3a 3c 73 b8 1f 40 0f a0 00 d8  zt..<.:<s..@....

0030   c4 9d 02 10 1f 00 22 7e 1c 9f a1 7b d9 ec f6 54  ......"~...{...T

0040   20 76 19 5d bf 21 c6 b6 8a 17 74 ef c8 43 d9 f8   v.].!....t..C..

0050   4d 24 61 18 1b fb 35 2d ed 6b 1b 55 76 7c 59 a5  M$a...5-.k.Uv|Y.

0060   26 ea db 2a 0e d9 c6 ac 83 56 f1 cd 44 00 e1 0b  &..*.....V..D...

0070   bc e4 b3 d5 6f 81 84 85 95 ad c8 65 6d d2 78 ed  ....o......em.x.

0080   b7 1e 6c bf 1e 83 48 91 b3 11 3f 87 b2 86 04 6a  ..l...H...?....j

0090   35 05 5b f6 b7 d5 7d 92 0b c8 18 92 00 21 0a 45  5.[...}......!.E

00a0   c7 dc 0f 7b 51 dc a1 49 26 c8 0b 7f 91 0d 21 a6  ...{Q..I&.....!.

00b0   26 eb f9 da 81 33 c8 fb a5 74 92 2c 69 6f 39 f9  &....3...t.,io9.

00c0   b3 0d db 82 41 1d 52 00 68 18 eb a6 e3 f1 44 32  ....A.R.h.....D2

00d0   c0 62 41 a7 0c 6d f4 bf c7 13 5a 89 3b 7b 43 79  .bA..m....Z.;{Cy

00e0   19 20 c6 89 3e a5 27 af 76 4d 6f 94 3a 4c ec df  . ..>.'.vMo.:L..

00f0   ca 24 5b 6b fd 06 80 9b 98 dc 70 fa ee b9 f8 6a  .$[k......p....j

0100   d7 03                                            ..

【包分析】

这是登录返回数据包,特征是00 22

注意:服务器会返回的这个数据包,解密包体后有4种结果,登录成功,重定向服务器,登录失败,密码错误.这个版本有点特别,登录成功事件的解包密钥是两次 MD5的密码HASH,其他的事件则是初始化的Key.这里我们是登录成功,所以用的密钥是两次MD5的密码HASH。而其他的事件则是初始化的Key就是刚开始的key值49 5c bd 3b 90 18 18 c2 74 3f 6e a0 79 92 8b 42

02 10 1f 00 22 7e 1c  这段数据和上次向腾讯服务器发出的请求数据的意义是一样的。

蓝色部分是经过以qq密码二次md5加密后的值为密钥的ETA加密后的一段密文,解密后结果如下

00 4B 70 54 57 46 42 6A 4D 79 33 7A 67 41 70 41 43 04 89 EB 69 3A 3C 73 B8 0F A0 7F 00 00 01 1F 40 46 28 AB 8F 03 0A E8 D9 34 D6 B4 06 6D 20 DB D7 56 57 7A 61 0F A8 21 F2 C1 5D 59 AA EF 3B 3D 8D C2 CF 1F 40 CA 68 C1 1A 1F 40 00 41 42 40 00 00 00 00 FB 5F 92 1B 09 C4 A2 4F EE E5 4F 23 4A 67 56 85 A8 4D 2C 81 46 13 A9 29 32 C4 A8 9C 30 BE C2 89 00 00 00 01 00 00 00 00 00 00 00 00 DF 1E 55 61 46 28 A5 11 46 28 90 17 46 28 88 83 00 0A 00 0A 01 00 00 0E 10 01 14 8F FE 4F BA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 02 04 08 08 08 08 08 04 02

【结果分析】

00:解出包体第一位代表登录状态 0x00 ->成功   0x01->重定向   0x05->登录失败  0x09->密码错误

4B 70 54 57 46 42 6A 4D 79 33 7A 67 41 70 41 43 :SessionKey以后的通信很多都是用这个为密钥,所以很重要

好了,到这里,基本的东西就分析完毕了。
分享到:
评论

相关推荐

    QQ2007正式版登陆协议分析

    QQ2007正式版登陆协议分析 文档中有详细QQ协议讲解 可供参考学习

    QQ2007Bate3协议分析

    QQ2007Beta3协议分析是针对腾讯公司2007年发布的QQ即时通讯软件的一个早期测试版本的网络通信协议进行的研究。QQ作为中国最流行的即时通讯工具之一,其内部工作原理和技术细节一直备受技术爱好者和开发者的关注。...

    qq2007bate3协议分析

    qq2007bate3协议分析

    QQ2007协议分析

    QQ2007协议分析是针对腾讯公司2007年版本的QQ即时通讯软件进行的网络通信协议解析。这个分析主要关注QQ如何通过网络进行用户登录、消息传输和其他功能的实现。QQ协议是一个复杂的系统,它涉及到多个层面的技术,包括...

    QQ2007 数据传输协议 .pdf

    通过对QQ2007数据传输协议及登录协议的分析,我们不难发现其设计思路与现代即时通讯软件有着诸多相似之处。无论是从用户身份验证到数据加密传输,还是从会话管理到错误处理,QQ2007b4都展现出了较高的技术水平和安全...

    QQ协议分析图.pdf

    - **描述**:该文档详细分析了QQ2008版本的传输协议,提供了关于QQ通信过程中使用的加密算法、密钥交换机制以及数据包格式等重要信息。 #### 二、QQ协议分析图核心知识点 ##### 1. 随机密钥(RK)处理 - **背景**...

    qq协议自动分析插件(含源码),支持QQ2007/2008/2009

    q协议自动分析插件(含源码),支持QQ2007/2008/2009,附件里面有详细的使用说明。。。 这个插件是个DLL,需要娜帕平台1.0的支持,官方网站http://www.im176.com。 个插件能自动分析QQ协议,,对于想分析QQ协议,,和想...

    QQ2007手机软件

    同时,由于QQ软件版本更新频繁,QQ2007版本可能不包含后来引入的新功能,如视频通话、朋友圈等。 总的来说,QQ2007手机软件是适应早期移动通信需求的产物,它利用Java技术实现了跨平台的即时通讯,让当时的手机用户...

    J2ME模拟器 QQ2007

    "KEmulator Lite V0.9.8"是一款经典的J2ME模拟器,它提供了对J2ME应用程序的仿真环境,使得我们可以在个人电脑上体验那些旧版的应用程序。这个模拟器的中文版方便了国内用户使用,使其无需语言障碍即可操作。 **...

    QAL.zip_55_QQ2007_协议 QQ

    QQ登录管理器 v1.55, 可以批量登录QQ2009版以前的任意QQ以及TM(例如QQ2008、QQ2007,TM2007等等) 本源码可直接使用VC6编译通过,无需任何其他库文件。 本源码作者为狂人论坛iMac,如需转载本源码,请保留作者...

    J2ME模拟器 KEmulator Lite V0.9.8 中文版含QQ2007.jar.rar

    - 老版本的QQ可能不支持现代的加密协议,因此在尝试连接服务器时可能会遇到问题。 总的来说,KEmulator Lite V0.9.8是回顾过去移动通信技术的一个有趣途径。通过它,用户可以体验到那些年代感十足的应用,同时也能...

    J2ME模拟器模拟2007版的手机QQ

    值得注意的是,由于2007年的QQ版本可能不支持现代的网络协议和安全标准,因此在模拟器中运行时可能会遇到连接问题。此外,模拟器可能无法完全模拟真实设备的所有硬件特性,例如传感器或网络速度,这可能会影响某些...

    qq2007 1200堆栈的

    qq2007 1200堆栈。

    qq2007辅助聊天工具

    QQ2007辅助聊天工具是一款专为QQ2007版本设计的增强型插件,旨在提升用户在使用QQ进行在线交流时的体验和效率。这款工具集成了多种实用功能,帮助用户更好地管理和处理日常的聊天事务。下面将详细阐述这款辅助聊天...

    QQ2007vista风格

    QQ2007vista风格是一款专为Windows Vista操作系统设计的QQ版本,它引入了Vista系统的视觉元素和用户界面设计理念,旨在为用户提供更为华丽且与操作系统深度融合的聊天体验。这款QQ版本在设计上充分考虑了Vista系统的...

    J2ME模拟器 QQ2007-Android工具类资源

    标题中的“J2ME模拟器 QQ2007-Android工具类资源”表明这是一个与Java Micro Edition (J2ME) 模拟器相关的资源包,主要用于在Android设备上运行2007年的QQ版本。J2ME是Java平台的一个子集,设计用于嵌入式系统和移动...

    7290 qq2007

    自己转的qq2007 黑莓7290绝对能用

    Debug Api 获取QQ2007密码DELPHI代码

    Debug Api 获取QQ2007密码DELPHI代码

    完全模仿QQ2007的样式!不用任何控件!

    完全模仿QQ2007的样式!不用任何控件!完全模仿QQ2007的样式!不用任何控件!完全模仿QQ2007的样式!不用任何控件!

    QQ第三登录jar包

    在开发过程中,需要注意兼容不同版本的Android系统,处理可能的权限问题,并确保用户隐私数据的安全。同时,为了提高用户体验,可以考虑使用异步处理登录逻辑,避免阻塞UI线程。此外,通过MTA SDK收集的数据可以用于...

Global site tag (gtag.js) - Google Analytics