天天看點

QQ協定分析(一)

QQ協定的分析已經很早就有很多人做過了,不過由于版本的更新,之前分析的協定又不能用了,不過目前2008版的QQ協定還可以用,我的分析也是在之前其他人分析的基礎上弄的,隻是分析了幾個重要的協定,實作了登入,收發資訊,心跳包,登出等功能了。

以下是基于QQ2009的協定,經過簡單研究,發現QQ2009與2010協定基本相同。

0x0091

發送:

標頭:02

版本:1A 35

指令:00 91

包序号:62 7D

QQ号:10 73 a1 f6

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

密鑰:D6 D1 DA FD 4D E6 70 FE 46 48 A0 AD BD 95 E0 B6

密文:82 9C 11 56 B6 24 68 18 A6 A1 B8 09 6A A7 C3 C4 E8 45 E5 33 EE 13 52 C6 C7 29 D1 46 93 21 97 EF 88 F2 FE 8B 76 9F DB 44 EA B0 1A 10 68 AC 05 18

包尾:03

解密:

固定:00 01

0091Data01(在後面的指令裡面要用到的):00 00 08 04 01 E0

0091Data02(在後面的指令裡面要用到的):00 00 03 20 00 00 00 01 00 00 0A 5D

固定15位元組0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

接收:

標頭:02

版本:1A 35

指令:00 91

包序号:62 7D

QQ号:10 73 a1 f6

固定:00 00 00

密文:D1 B3 D5 AF 79 DE 82 8B E5 F8 FE 98 59 DB 0D AD D5 D6 8A FE A4 E1 74 5B 08 F0 58 E2 4E 6A 5F 37 DE BC 9E 2F 27 CA 40 82 11 1A 48 CD C6 32 35 7D 6A D9 9F 8C 0A 72 12 29 5A 5E AD 98 3C 77 0D 77 48 EB B4 17 F9 14 66 CC 7F D2 97 82 43 8F D8 87 89 CA 4A 02 71 29 19 66

包尾:03

解密結果:

接觸成功:00

登入時間:4B E2 CF 4E

IP位址:7B 91 B5 20

固定:00 00 00 00 00 00 00 00

令牌長度:00 38

0091_Token:

4E A3 61 22 B2 03 8A E3 F6 3B E3 E0 CF 90 2E B0 8D B3 86 98 37 D4 E5 E5 62 94 AB 0A F2 73 A3 DD 9D 81 5F 0E 1D CA A4 57 52 09 83 EA DC 88 80 5F D5 C4 BB D4 80 64 18 83

Touch結果:00 (00成功開始登陸,其他繼續連接配接)

如果發生重定向

接觸成功:00

登入時間:

IP位址:

固定8 位元組:

令牌長度:

令牌内容:

Touch結果:01

重定向計數:01

連結伺服器提供者辨別:00 00 00 01

服務版本:00 00 00 00

伺服器IP 位址(四位元組):0x00BA

發送:

02

1A 35

00 BA

5F C8

10 73 a1 f6

02 00 00 00 01 01 01 00 00 64 00

密鑰:FD F2 EC E4 F5 C0 95 E7 30 8B 08 55 CB 44 7B 60

密文:

B3 A0 63 AB 9E B2 F5 70 7B B7 3B EA 06 D8 60 E9 87 27 B0 D5 81 1E 0A AF 6D AC 59 7F DF 45 A8 71 4E 5D 5E 8F EA DC C1 06 82 F7 FD 3B 21 5E 87 F5 C5 2A D6 AF D1 C0 A4 3E DB 90 DA 70 A4 CF F8 E0 B9 1A 2C C2 14 D6 E2 67 52 16 F3 A8 79 59 BC AA CF 78 D3 E8 21 7E 30 9D AF D1 88 15 A7 B9 77 41 12 33 F2 09 29 4E 74 8E

03

解密:

固定:00 01

0091Data1:00 00 08 04 01 E0

0091Data2:00 00 03 20 00 00 00 01 00 00 0A 5D

00 38

0091_Token:

4E A3 61 22 B2 03 8A E3 F6 3B E3 E0 CF 90 2E B0 8D B3 86 98 37 D4 E5 E5 62 94 AB 0A F2 73 A3 DD 9D 81 5F 0E 1D CA A4 57 52 09 83 EA DC 88 80 5F D5 C4 BB D4 80 64 18 83

固定:03 00 05 00 00 00 00 00 00 00

接收:

02

1A 35

00 BA

5F C8

10 73 a1 f6

00 00 00

密文:

99 26 D0 CD F6 85 AB D5 89 6A E4 91 A4 65 B0 A4 2B 41 B0 C9 6A 64 BF EF 87 64 80 F2 D0 36 BB E8 64 E3 47 B8 42 51 FF B6 79 8F 78 92 D0 9C F6 65 3C F0 5A EE 51 24 E1 79 6B 1C 35 D4 AC 0F 59 00 8F CE B0 2D C8 6D F1 66 FE 22 8E 70 47 D0 44 B9

03

解密:

驗證結果:03 (03 标示成功,04 需要驗證碼)

固定部分:00 05

是否需要驗證碼:00 (00 不要,01 要)

驗證碼:00 00 00 00 (需要驗證碼時為00 00 01 23,不需要時為全 0 )

令牌長度:00 38

00BA_Token:

EB 8F F6 B1 2E F0 E0 8C 9A 03 0F D0 65 36 CC 44 5D F8 CC CF 3C 37 25 D1 E3 CE 78 F0 BA C3 37 52 14 19 A0 FC EB 3B 4A A8 37 F2 0F 98 F8 CB 39 83 49 EA 6B F0 BE 12 7A 60