QQ協議分析四

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章