QQ协议分析四

来源:互联网 发布:靠谱的mac淘宝代购 编辑:程序博客网 时间:2024/05/02 03:01

0x0058(心跳)

发送包

包头:02

版本:1A 35

命令:00 58

包序号:

QQ号:10 73 a1 f6

固定:02 00 00 00 01 01 01 00 00 64 00

密文:由QQ号的ASCII码组成,然后再用sessionkey进行加密得到(31 34 32 37 37 34 38 32 32 35

包尾:03

 

接收:(不需要管)

心跳包每分钟发送一次,每次都应有返回,如果没有收到返回,那就需要继续发,如果连续发送5次都没有收到返回,则说明已经掉线了。

 

0x0062(注销)

发送:

包头:02

版本:1A 35

命令:00 58

包序号:

QQ号:10 73 a1 f6

固定:02 00 00 00 01 01 01 00 00 64 00

密文:16 字节0 ,用sessionkey 加密

包尾:03

 

此包要连续发送4次。

 

此命令还有需要验证的情况,本人没有进行分析了,如果有需要的,自己去分析一下。

0x0080(有人加我为好友)

02

1A 35

00 80

E4 5C

00 66 13 D0

00 00 00

26 7E 25 F2 D1 C5 C0 BE 16 D8 27 E1 FE A5 2B 9B DC 49 55 9D 75 28 12 7B 20 2D CF 20 63 E0 9B 52 B1 8D BB 59 CD EE 51 57 0C 2C 1B B3 66 FD 7C 09 BF 2D 18 40 92 4F 06 65 DC 2B 64 A5 0D 8D EA 0F 03 C6 6B D7 64 AB 6F 84 B1 8C 7C 06 41 7E 29 7B 84 16 00 AE 47 40 93 64 EB 08 AD 42 10 B7 0D 77 E4 E4 71 18 5F 78 93 77 80 B2 59 F3 C4 7C 50 0F

03

 

解密:

34 30

1F

31 34 32 37 37 34 38 32 32 35(对方QQ 号)

1F

36 36 38 39 37 34 34

1F

18 93 E0 53 D1 2C 97 CB 0F F1 B2 A2 07 F7 34 BF D9 85 5E EC A1 B0 CF 6D FD

00 30

62 35 30 62 36 37 61 30 66 61 32 36 38 39 63 66 63 62 35 34 36 36 36 34 62 37 32 31 61 35 38 33 33 37 30 35 35 34 38 32 64 39 37 38 64 64 30 37

 

2009版本里面的qq,除了每分钟必须发送的心跳包外,每个五分钟,还必须发送下面两个命令,否则一会儿就掉线了。接收到的数据不需要管,我也不知道是用来干什么的。反正一直没有用。

 

0x0027(每个五分钟发一次)

 

发送

02 1A 35 00 27 3C 2F 55 19 B5 81 02 00 00 00 01 01 01 00 00 64 00 F6 28 66 4C 25 CE F1 38 60 FC

D2 19 DE 1D F9 3A 03

 

解密:

02 00 00 00 00

 

接收

02 1A 35 00 27 3C 2F 55 19 B5 81 00 00 00 F8 9B 8A E9 E9 8C 35 C7 FD 42 47 03 82 A0 76 DA 03

解密:

FF

 

0x00C6(每个五分钟发一次)

发送

02 1A 35 00 C6 48 64 55 19 B5 81 02 00 00 00 01 01 01 00 00 64 00 35 CF 5B 8B 34 A0 EA E8 09 B9

0F 06 5D 6C 9C 74 03

解密:

02 00 00 00 00

 

接收

02 1A 35 00 C6 48 64 55 19 B5 81 00 00 00 CB 27 71 89 8D 40 46 E7 4A 52 DF 0D 20 01 6D 9C 98 6D

F7 F3 79 36 21 E9 53 5D A6 55 3F 64 D4 2E 03

解密:

02 00 00 01 2C 00 00 00 0A 00 00 00 00 00 00 00

 

0x00CE(接收消息)

发送者QQ10 73 a1 f6

接受者QQ00 66 13 D0

回复收到时填充的数据:00 0A 25 67 3A 3C 0F 33

端口:1F 40

信息类型:00 A6(好友信息)

固定:00 00

长度:00 15

内容:00 06 00 04 00 01 01 01 00 01 00 04 00 00 00 00 00 03 00 01 01

QQ版本:1A 35

发送者QQ10 73 a1 f6

接收者QQ00 66 13 D0

会话令牌:F0 02 DB 96 F7 07 00 0B 7C 1C C1 E2 42 94 9A 36

文本:00 0B00 AF 震动,也可能是对方正在准备发消息的一个标志)

不知道(会变):1D 2B

发送时间:4B EE B6 A5

发送者头像:02 4F

是否含有字体属性:00 00 00 01

消息分片数:01

消息分片号:00

消息ID00 00

是否自动回复:01

MSGUTF84D 53 47 00

固定:00 00 00 00

发送时间:4B EE B6 A5

不知道:50 60 9E 26

固定:00 00 00 00 09 00 86 00

固定:00 06

固定:E5 AE 8B E4 BD 93

固定:00 00

文本: 0102 为自定义表情)

长度: 00 39

不知道:01

消息长度:00 36

消息内容:

E5 8F 91 E9 80 81 E4 B8 80 E4 B8 AA E6 B5 8B E8 AF 95 E6 95 B0 E6 8D AE EF BC 8C E7 9C 8B E7 9C 8B E4 BD A0 E8 83 BD E4 B8 8D E8 83 BD E6 94 B6 E5 88 B0 E3 80 82

 

 

回复时的包体:

发送者QQ+ 接受者QQ+ 收到内容中的8 字节回复内容

 

 

聊天中含有自定义表情信息的:

自定义表情在中间,,我再看看行不行呢。

发送QQ10 73 a1 f6

接收QQ00 66 13 D0

00 0A 38 BC

3A 3C 0F 2A

1F 40

00 A6

00 00

00 15

00 06 00 04 00 01 01 01 00 01 00 04 00 00 00 00 00 03 00 01 01

1A 35

10 73 a1 f6

00 66 13 D0

A3 E8 70 94 34 12 C3 18 E5 D6 CC 31 3E 75 EC C5

00 0B

25 4F

4B EF 83 C2

02 4F

00 00 00 01

01

00

00 00

01

4D 53 47 00

00 00 00 00

4B EF 83 C3

74 31 E1 75

00 00 00 00 09 00 86 00

00 06

E5 AE 8B E4 BD 93

00 00

01(文本消息部分)

00 1E(长度)

01(不知道)

00 1B(消息长度)

消息内容:E8 87 AA E5 AE 9A E4 B9 89 E8 A1 A8 E6 83 85 E5 9C A8 E4 B8 AD E9 97 B4 EF BC 8C

02(自定义表情)

00 09(长度)

01 00 01 62 FF 00 02 14 A3(内容)

01(文本消息部分)

00 21(长度)

01(不知道)

00 1E(消息长度)

消息内容:EF BC 8C E6 88 91 E5 86 8D E7 9C 8B E7 9C 8B E8 A1 8C E4 B8 8D E8 A1 8C E5 91 A2 E3 80 82

 

 

QQ的消息接收了后,是需要回复的,否则服务器会不停的向你这里发送6次,回复的内容是接受到的数据包的密文部分解密出来后的前16字节,比如本例子中的前16字节就是:

发送者QQ55 19 B5 81

接受者QQ00 66 13 D0

回复收到时填充的数据:00 0A 25 67 3A 3C 0F 33

 

0017命令主要是08版以前的QQ的协议用的命令。

0x0017(接收消息)

发送者:0B 15 B9 96

接收者:00 66 13 D0

回复是的内容:00 00 68 96 DB 85 3C 40

端口:1F 40

消息类型:00 09

固定:00 00

长度:00 00

发送者QQ版本:12 21

0B 15 B9 96

00 66 13 D0

9C E8 45 9E 95 A2 0B 71 4C AD F5 90 B6 1B C8 08

消息类型:00 0B

数据包序号:00 07

发送时间:4B EE 2F 01

发送者QQ头像:00 00

是否含有字体:00 00 00 01

消息分片数:01

分片序号:00

消息IDDC 00

自动回复:01

消息内容:B7 A2 B8 F8 C4 E3

00 0A

00 00 00 00

86 02

CB CE CC E5

0D

 

 

 

回复:

02 1A 35 00 17 00 07 00 66 13 D0 02 00 00 00 01 01 01 00 00 64 00 D2 C1 89 57 63 F6 49 E8 23 77

7F 29 39 8C 5E F6 18 63 19 09 73 CB 57 D2 55 D8 F8 CE 32 50 0E D5 03

 

解密

0B 15 B9 96

00 66 13 D0

00 00 68 96 DB 85 3C 40

 

 

QQ的消息接收了后,是需要回复的,否则服务器会不停的向你这里发送6次,回复的内容是接受到的数据包的密文部分解密出来后的前16字节,比如本例子中的前16字节就是:

发送者:0B 15 B9 96

接收者:00 66 13 D0

回复是的内容:00 00 68 96 DB 85 3C 40

原创粉丝点击