QQ2013协议浅析析

    分析的QQ版本是2013beta3版本的,只是针对于登陆时的一组数据包做的简单的分析!

QQ在登陆过程中,会和服务器进行数据交互,首先就是实用的是0x0825像服务器发送的请求!下面是数据包的内容,

发送的第一个数据包,0x0825

[NO.1 2013-05-08 10:13:59 245 SEND 147字节]

02 32 4D 08 25 1E EC 50 93 A4 A5 03 00 00 00 01

01 01 00 00 66 2C 00 00 00 00 75 1C 6E 17 EF DF

D6 0D C2 87 BC 03 29 B4 4E 3C 00 CF 78 BB 1B 7A

D4 4A 26 68 F6 99 C2 B7 F6 99 08 39 59 D3 46 BE

42 29 AE 0B 3E AC 0D C7 5B 2C 09 EE 10 37 2C C8

A0 CF BF B0 83 6C 99 D4 18 D0 FF 3D 19 98 C8 66

94 74 1F 2D CF 33 C8 85 35 37 E6 FF 66 07 B3 C8

07 2F EB 6F 8A 1E 1A 9E 16 18 64 1F 68 58 52 67

CA A0 12 75 6B 09 DD 4A 5D 9D 81 C1 E7 8B CB F2

10 89 03

 报文的解读

02      #包头,所有QQ协议的包头都是

32 4D     #版本号,同一版本中不会改变

08 25          #命令字段 

1E EC          #序列号,随机生成

50 93 A4 A5     #QQ号,需要转换成10进制

03 00 00 00 01 01 01 00 00 66 2C 00 00 00 00  #此字段暂时不理解,是固定字段

75 1C 6E 17 EF DF D6 0D C2 87 BC 03 29 B4 4E 3C   #TEA keyQQ的报文采用的是TEA16轮加密算法!

经过TEA key加密的密文

00 CF 78 BB 1B 7A

D4 4A 26 68 F6 99 C2 B7 F6 99 08 39 59 D3 46 BE

42 29 AE 0B 3E AC 0D C7 5B 2C 09 EE 10 37 2C C8

A0 CF BF B0 83 6C 99 D4 18 D0 FF 3D 19 98 C8 66

94 74 1F 2D CF 33 C8 85 35 37 E6 FF 66 07 B3 C8

07 2F EB 6F 8A 1E 1A 9E 16 18 64 1F 68 58 52 67

CA A0 12 75 6B 09 DD 4A 5D 9D 81 C1 E7 8B CB F2

10 89 

解密后报文如下:  这里解密使用的是QQanalyer

00 18 00 16 00 01                               #token1(在后面的包0x0826里面会出现)

00 00 04 31 00 00 00 01 00 00 13 D5     #token2  同上

50 93 A4 A5                           #QQ号码

00 00 00 00 03 09 00 08 00 01   固定    字段

7B 97 28 47 00 02 00 36 00 12 00 02 00 01 00 00

00 00 00 00 00 00 00 00 00 00 00 00 01 14      #未知

00 1D29 #后面29个随机字段,随机填充一些字段增加复杂性。

01 02 00 19 02 8D 25 57 B1 CF 01 38 F6 0A 8A 08

CD 5C 3D EB 75 50 65 A2 64 80 2D C0 9D

03、包尾


第二个数据包,来自服务器的回应。

[NO.2 2013-05-08 10:13:59 263 RECEIVE 111字节]

02 32 4D 08 25 1E EC 50 93 A4 A5 00 00 00 9F A2

61 9B 89 67 84 B8 B2 93 FE 7C BE 94 A8 A5 25 0F

C1 2B C8 C6 36 EC D4 81 8C DB 0A AE C9 48 33 A1

45 2F BA E6 29 A2 3C E7 41 F3 AD F0 99 56 29 52

61 5E 05 9D FE AB 00 39 E0 EA 4E 78 2C C2 E3 33

7E 03 BD C1 80 78 C6 87 8C A1 BC 58 82 9F 43 5C

19 2E 3F AE A6 B7 92 F8 97 90 D6 24 2D 10 03

02

32 4D

08 25

1E EC

50 93 A4 A5    前面几个,同上,有人就干脆将前面的11字节划分成了包头

00 00 00   #固定

加密字段

9F A2

61 9B 89 67 84 B8 B2 93 FE 7C BE 94 A8 A5 25 0F

C1 2B C8 C6 36 EC D4 81 8C DB 0A AE C9 48 33 A1

45 2F BA E6 29 A2 3C E7 41 F3 AD F0 99 56 29 52

61 5E 05 9D FE AB 00 39 E0 EA 4E 78 2C C2 E3 33

7E 03 BD C1 80 78 C6 87 8C A1 BC 58 82 9F 43 5C

19 2E 3F AE A6 B7 92 F8 97 90 D6 24 2D 10

用第一个数据包中的KEY解密之后

00 01 12 00 38 5E 21 67 6C CE 60 58 6F 43 2A A7

03 03 71 38 8B 2A 73 6D 4B E9 C7 6F 46 C7 1A 9E

71 50 F6 29 BB 2C E3 F3 A9 24 05 89 41 2C 17 FE

B2 F0 5D 1D FE BF 0F CE B3 89 77 76 9D 00 17 00

0E 00 01 51 89 B4 E6 7C CD B6 62 0F A0 00 00

 

00  登陆成功

01 12 

00 38  56 这个在后面的0x0826里面也会有的

5E 21 67 6C CE 60 58 6F 43 2A A7

03 03 71 38 8B 2A 73 6D 4B E9 C7 6F 46 C7 1A 9E

71 50 F6 29 BB 2C E3 F3 A9 24 05 89 41 2C 17 FE

B2 F0 5D 1D FE BF 0F CE B3 89 77 76 9D

00 17 00 0E 00 01  固定

51 89 B4 E6  #登录时间

7C CD B6 62  #登陆IP

0F A0 00 00

03                #包尾

你可能感兴趣的:(qq,分析,协议)