天天看點

QQ2013的PC版協定,0825包和0826的資料分析

<a target="_blank" href="http://www.cctry.com/thread-146696-1-1.html">http://www.cctry.com/thread-146696-1-1.html</a>

最近寫個QQPC協定傳回目前QQ各種狀态的東東。網上很多地方說的都有點不太明白,而且最新協定的也很少,基本都是以前的。苦逼之下借鑒各種資料,熬了幾天。終于寫出來了。因為隻傳回各種狀态,,是以偶分析到0826這個資料包。後面的也就沒分析了。雖然東西不多。。也希望能幫到對這方面有星期的朋友吧。。下面是分析的内容。。 騰訊的資料包都是用的tea加密算法。我們要先解密。。。才能看到真正的内容

搞忘記了。 用到的工具。。

QQ2013的PC版協定,0825包和0826的資料分析

<a target="_blank" href="http://www.cctry.com/forum.php?mod=attachment&amp;aid=MTU2MDh8ZGJjMDUyOGR8MTM4MTY0ODUyMnw2Mzk5fDE0NjY5Ng%3D%3D">QQCrypter.rar</a>

(163.27 KB, 下載下傳次數: 83)

2013-1-14 01:07 上傳

點選檔案名下載下傳附件

抓包工具自行選擇吧。。

[2013/1/13 22:49:38:144](發送的資料包)

02 //標頭  騰訊所有發送的資料包都是以這個開頭

2F 35 //版本号  QQ版本不同。這個東西也會變

08 25 // 指令  首次跟伺服器接觸發送滴。。

4B B1 //序号  這個東東是随機的 。。。  随機生成這個就可以了。

39 80 8C 2C // QQ号的HEX   轉換過來就是 964725804

03 00 00 00 01 01 01 00 00 65 A6 00 00 00 00    //這個是固定的。。具體啥麼東西,不清楚

3E 59 4A DF 55 04 B1 AD 22 33 9F B3 E1 C3 CC D7 //這個是随機的tea key  軟體裡随機生成就可以

-------------------------------------------------------------------------------以下就是經過 tea key加密後的資料了

39 16 78 35 92 0F 3D 37 95 4C 7C C8 8E 26 5C E6

D4 D9 47 C0 EE 30 08 94 BE 08 AC 8C 14 C8 CD 1A

90 CF 7F 01 AE 8D 55 75 51 56 D9 A7 92 6B A0 C6

79 00 BF 99 47 06 8F 5C D9 2C 6B 97 C9 D4 AE 79

C1 31 1B AC A6 0E 5F 9C

----------------------------------------------------------------------------- 以下是經過tea key解密後的資料

00 18 00 16 00 01 //token1  固定的6的長度 這些後續的發包裡需要用到。是以要記下來,好友善後面組合

00 00 04 11 00 00 00 01 00 00 12 91 //token2  固定的 12的長度

39 80 8C 2C //這個是QQ号

00 00 00 00 01 14 00 19 01 01 //固定的資料

00 15 //這個呢。下面資料大小 16進制的15 換成10進制就是21 下面剛剛好是21的長度

03 2A 37 9C 8E 0B 74 A2 F1 E5 47 56 0B 02 CE 2C D0 0A 83 9E D2

//這21的長度是随機的。随便生成

-----------------------------------------------------------------------------

03 //包尾  騰訊所有發送的資料包都是以這個結尾

[2013/1/13 22:49:38:238](接收的資料)

02

2F 35

08 25

4B B1

39 80 8C 2C //前面的和上面的意思一樣。這個是QQ的傳回包

00 00 00 //用固定的 00 00 00隔開了

--------------------------------------------------------------------------------以下是加密資料,用發送的那個tea key解密

30 10 39 3F 8B 13 9F 79 36 24 8A 07 78 25 94 C7 2C 50

D1 2A 3D B1 54 5E 19 8C 93 EA 10 4E 5E 99 80 96

C0 D0 39 39 6C 14 D2 53 D9 35 C4 95 4A 3B 60 94

80 9C F8 B5 D9 8B DC 65 D6 3F C1 6C DA 10 4A A3

9A CC BA FB 98 44 6B B2 91 53 7F A8 94 A0 11 38

BB EA 8B 89 22 1B 51 94 87 1B 77 22 00 EE EB 43

EE E1 7B 9F 4F E0 F8 10 20 66 DC 97 E6 A5 EA D4

F4 DD 02 A5 3C CA

-------------------------------------解密出來的資料

FE // 伺服器IP需要中轉..。。。其實根據接收的資料包大小就可以知道。需要中轉的話 接收的資料包是135的長度,不需要的話是111的長度

01 12 // 固定

00 38 //0038的token 38的10進制是56,下面56的長度後就可以是下一個指令了,這些資料在 0826包都需要

D8 62 09 42 21 5C FE 51 C6 E6 07 C6 0A 3A 2A 7F 7B 50 E0 86 A3 0F 7E 10 FB A4 04 E6 DA 6E 9B BF 19 CA 64 52 2E 27 FB B0 9C 68 A0 4F BA 6A EC 9B 24 F4 F3 14 BF A1 D8 5F

00 17 00 0E 00 01 //固定了

50 F2 C9 3F //這個是連接配接的時間 2013-01-13 22:48:31

7B B6 90 44 //偶的本機IP  123.182.144.68  

BD 0B 00 00 00 0C 00 16 00 02 00 00 00 00 00 09 00 00 00 00

70 5A 54 65 //中轉的伺服器IP 112.90.84.101  這裡把解密出來的IP位址直接放到socket的IP設定那裡就可以了,

00 00 00 00 00 00

---------------------------------------------------------

03 //包尾

[2013/1/13 22:49:38:144](給中轉過後的IP發送0825包)

42 0A //這個應該是上面的序号+1才對  不過不知道腫麼回事,我這裡剛剛出了一堆中轉。呵呵

39 80 8C 2C //qq

03 00 00 00 01 01 01 00 00 65 A6 00 00 00 00 //以上的就不分析了啊。。根據上面的看就知道了

E6 F0 06 96 1A E0 CB C4 5C FA 20 1B 98 C4 84 EE //重新随機生成的tea key

----------------------------------------------------------------------------加密資料 用上面的key解密

56 F0 09 B9 F5 D6

79 7D 2B 8F 18 79 F6 54 75 8D 6C BA CD C4 BF E0

8E 14 00 0B 92 67 DF D6 20 F7 EE 77 EC 84 1C 18

0B 2F B7 34 67 83 4B 5E B9 70 F8 FC 51 63 04 52

9D 05 5C 21 58 14 AA E4 2F 4D 69 13 E2 1D ED 78

91 C4

---------------------------------------------------------------------------以下是解密資料

//是不是很熟,這個就是第一次發包的資料,其實下面的都是和第一次一樣的。重發了一遍而已

//是以捏。。偶就不解釋了。。

00 18 00 16 00 01

00 00 04 11 00 00 00 01 00 00 12 91

39 80 8C 2C

00 01 00 00 01 14 00 19 01 01

00 15

---------------------------------------------------------------------------

03 //包那個尾

[2013/1/13 22:49:38:191] 其實呢。這個包的大小是111的,也就是說不需要中轉了哈。

42 0A

00 00 00 //以上都是一成不變的東東。

-------------------------------------------------------------------加密那個資料

06 11

B7 37 D9 EA 80 DE CC FB 88 89 D8 A2 60 70 18 57

5C 85 CB 64 92 82 33 3C D8 A3 FA B7 AA B4 28 C1

DB 07 0B 41 3F 9B 3E CD E8 55 42 4A 33 50 34 99

2B 41 68 7A E4 36 D9 4B F5 DC 7F 07 5E 0A 84 90

7F 63 49 EA 26 BC 06 6C D9 81 99 70 FF 9F E3 85

CA 84 3F A2 CD 32 4D 48 E2 F0 C1 06 11 8E

-----------------------------------------------------------------------------解密那個資料

00 //接觸成功了。

01 12 //還是這個,,固定那個固定

00 38 //56長度的token 後續要用的噢。。

0B B4 8E C1 91 63 37 83 EF 7D 01 C2 73 D0 84 42 C2 2A 95 4E 63 6A 0E 82 D4 CF 65 87 46 67 F3 20 AD D1 49 42 94 3F 31 17 27 91 0C 38 90 82 6E 81 D0 8F CB 8E 41 B6 C9 45

00 17 00 0E 00 01

50 F2 C9 3F //很明顯的時間。。

7B B6 90 44 //偶的IP位址

BD 06 00 00//其實。接收的包。記住一些下面的包需要用的資料就可以了。沒用的像這些随機資料直接不用記

03 //包包的尾部

[2013/1/13 22:49:38:207]   //  發送的包  0826了喔。。這個傳回的是各種狀态了

08 26

2D F3

03 00 00 00 01 01 01 00 00 65 A6 00 00 00 00 //以上的東西。老樣子。看第一個包的分析就知道了

2D 1A 48 4E 3C 62 52 CC 30 7B 66 B2 50 E2 1A 14 //0826 随機生成的tea key  或者叫随便生成的

-----------------------------------------------------------------------加密資料咯

F5 CC 47 E7 C8 8D

91 6E 11 E8 D3 41 34 DE 00 F8 05 DA 71 AB A1 67

70 2F 11 00 08 22 FA 94 DE 63 B5 74 EC 83 70 21

0A 7A 9B 83 EA 6B EC 5E 96 39 A5 2C 31 D8 D1 DE

25 53 7B CB 89 E8 DE C6 94 EA DF C9 55 61 B9 EA

E6 DC 06 92 69 A1 71 FA EE 93 1B 05 D8 13 FF 8E

2F 81 34 13 6A D4 8B B4 86 FC 80 DE F5 F3 9B 93

8E 48 F9 59 17 F1 44 B9 A8 66 FB 38 6B BE F5 FE

5B F4 FF 9B 0F 18 8D 13 20 0F E7 74 50 C4 C9 3F

51 84 1B 54 E8 06 61 76 A7 34 7D 3E AD 2D 2D 9A

6D A0 9D C2 30 D3 90 E1 9C B5 00 16 89 75 87 3D

B0 8D 37 FA C5 2C 1C BD 79 38 0E 3A A0 E9 04 34

20 54 4B 5F A6 33 52 AC F4 40 92 25 FE 66 AC F0

3B D1 FE CC FB 4E CF 6E 0D 23 1B A1 A9 63 70 8B

23 4B 75 C7 55 A9 5D B8 E7 C1 D6 DC EA A5 32 1C

81 30 CE 79 29 3B 83 21 87 84 20 80 5F 40 19 DC

4E E0 31 54 BF F6 03 69 D8 36 69 E7 DF A3 66 C5

35 85 7F CD BA EC 64 6D F0 04 47 49 7C EE 2A 63

8D 43 AF B6 18 DA 07 47 D2 B5 4B 34 D8 2D 7D B0

B4 BC 2C B8 0B 67 87 40 76 F0 54 29 04 41 DD CC

71 B6 01 40 70 1B E1 0B D7 4D 87 B1 73 4A 5B 49

EE 87 14 93 EE 76 17 E2 94 19 84 BA F0 5F 0E 82

89 69 E3 4B 9F 0E 7F F0 1D 18 94 EB AF EA BB 01

2B D6 D0 7D 63 32 E5 5B D7 F5 61 F7 7D 94 EE 74

31 87 F0 A9 61 8C 04 5B FB D9 E9 F3 B7 7E A2 69

80 A1 BB E6 72 83 01 63 92 9C BB 03 B6 C6 17 86

E9 1C 47 B1 98 C0 F4 5F E5 96 53 FC A8 E4 65 3C

A9 E1 2F 7B DC 62 BB 4A AF 39 71 9F E1 8D BE DD

E2 E5 99 06 08 53 87 72 1B 4C 84 5D 1C C2 56 81

E7 0B

-------------------------------------------------------------------------以下是解密資料  真多啊

01 12

00 38

//////////上面的資料眼熟麼,中轉過後,0825包接收到的,這個包就當頭給發出去了貌似就是令牌的意思吧

00 05 00 06 00 02 //固定這麼幾個位元組。。。資料也是固定的

39 80 8C 2C //然後  QQ号

00 06

00 78 // 78 是16進制的,,10進制是120.。。也就是說。下面有120長度的資料時一個分水嶺。噶

//。。這個也是加密的。解密的方式是QQ密碼的一次MD5+00 00 00 00 +QQ号的hex

6E 44 7B 20 42 41 CE 47 9C 6C 25 F5 BD 06 48 54 47 7A 20 F9 19 8B CA AC 77 AD 6E 00 11 72 1D 67 08 CC CF BD 64 1D 68 DC 86 A6 DC 17 69 38 C6 90 5C 6D D9 A8 80 C7 D4 A3 16 B4 9A B2 5E B8 8C 0E 18 66 A6 C3 7A D8 80 86 97 67 64 87 FB FA FE 60 65 F0 E5 47 18 11

44 05 1D 7E B5 50 74 97 6B A7 7D 85 26 08 25 A4 43 1B 88 C8 39 A7 92 85 48 26 52 2A 1B 15 C8 33 F3 D0

------------------------------------------------------------------------------00 78的解密資料

4E 8B B4 0A //剛剛開始時4的長度,,随機的。。

00 01 //固定的

39 80 8C 2C //qq号

00 //固定

00 04 11 00 00 00 01 00 00 12 91 //眼熟麼 0825裡的

00 00 00 // 00的固定噢。

0A DC AF 06 5B F8 C6 99 4D 9C 42 16 27 12 D2 56 //這個是密碼的一次MD5。。密碼是yansh83082 反正QQ是

//當機的 嘿嘿

50 F2 C9 3F //時間來了。。。

00 00 00 00 00 00 00 00 00 00 00 00 00 //固定長度的資料

00 00 00 00 00 00 00 //固定的

0C //這位會變。。不過固定貌似也沒事。。怪了

00 10 // 16的長度

49 85 A1 B8 21 04 DA 46 9E 3F 17 C4 99 6E 4F DB //這個是固定的

D0 D4 42 1A 34 8E A9 9B BD C2 CF B8 B8 E1 B3 5A //這個是随機的。。用随機的這個解密下面 00 40的資料

------------------------------------------------------------------------------以上就是 0078的解密資料了

00 18 00 16 00 01 00 // 0825資料包裡面的

00 04 11 00 00 00 01 00 00 12 91 //0825資料包裡面的 token1 和token2 。。又拿過來了

39 80 8C 2C //QQ号

00 00 00 00 01 03 00 14 00 01 //固定的長度和資料

00 10 //0x10的10進制是16  16的長度  一般16的長度都是key   

ED A1 D3 F6 EC 73 DE 8F 1F 5C 4B 3C 2C CB 3B 3F //不過這個資料是固定的。。。

01 14 00 19 01 01 00 15 03 2A 37 9C 8E 0B 74 A2 F1 E5 47 56 0B 02 CE 2C D0 0A 83 9E D2 //還是0825裡面的

01 02 00 62 00 01 //這個也是固定的

BD 1E 9F A1 BE EE F7 83 9C 07 D0 C9 91 0D 4E D9 //随機16的長度。。。不知道是個啥麼的key反正這裡沒用

00 38 //0826 傳回的令牌了。。

00 26 12 A1 AB 5C 0D 20 26 43 91 28 8C DB AE 62 70 B7 BB 92 16 5F 33 1C E3 F4 C3 C8 13 12 A0 C2 AA FA 1E E5 AD F1 7F 38 91 E3 08 B9 F4 4C 5B 5A 8B 59 00 4A 5C 4A 45 75

00 14 //14的10進制是20,下面分出20個來

62 96 52 20 9A 2E D1 94 B9 6F 35 F0 AF 1C 46 3C 1B D5 4A 5B

00 1A //固定資料

00 40 //40的10進制 64  下面是64個。。也是加密的。。。

0B 43 20 5C 6F 5D 29 A2 D3 84 6E F2 54 1B BE 12 68 52 A1 5B 6C BA 08 76 9F 23 CD 41 30 FC C8 F8 CB 76 2B 8B B2 5C A2 66 CD 23 30 89 BE 77 3A B5 00 2B 21 70 F3 00 4B 1F 59 42 C7 B1 C5 83 A2 35

---------------------------------------------------------------------------以下是解密部分,00 40的解密部分。。别了解錯了

00 15 00 30 00 00 01 BE 1D AF 4F 00 10 0A 7B 3C 1F 90 D2 01 52 46 B5 A6 42 C7 E9 22 0D 02 EC F4 85 BC 00 10 AD 7D C0 21 74 66 7B 1D 30 6C 08 63 DC AC 9C 29

//整個解密出來的資料部分都是固定的。。。汗。不知道幹嘛呢。

03 //包尾部了

因為偶隻需要這點。是以也隻分析了這點。。下面傳回的資料是異常登入資訊的。解不開。隻有賬号密碼正确的情況下。。0826的傳回包才能用0826的KEY解開。密碼錯誤,需要驗證碼,當機,異地登入等資訊,都沒辦法用0826的key解開。。貌似是别的KEY了?

另外說下判斷吧。。。

0826 傳回包的長度=127 是賬号異常 =175是密碼錯誤 =740 是賬号正常滴,密碼也正常滴 =871就是異地登入了,,而下面這個傳回包呢。就是871的長度

隻要按照上面的解密步驟。。反過來進行加密。。那麼最後把加密的資料發送出去。。就可以了。記得不是發送字元串啊。

[2013/1/13 22:49:38:269]

02 2F 35 08 26 2D F3 39 80 8C 2C 00 00 00 E1 82

9B 2F AA CC AF 23 D6 56 80 56 BF A9 5C BC 39 7B

22 86 C5 E8 7E 1E 17 09 83 E9 66 24 B8 38 37 F7

DB 71 A6 7D E2 4A 41 E8 7A 6E 63 4F 35 8F 2F 6B

EB 54 D4 8B 36 19 0F D5 BE 55 9A 8F E8 BE F3 D6

8A 32 70 E1 A8 48 2D F5 6C 5D 13 61 16 AE 70 36

81 0C 65 CF 2E 90 B9 07 5B DB 3D 0A 86 ED 72 1A

1D A1 F6 CD 3F 37 E8 5F A2 CD 19 72 32 EF E8 63

F8 4A 3A 2A 6D 7D 5F 90 3A D4 BA 8F E0 19 E4 81

5B 6F E3 F6 05 B5 22 95 B4 DB DA A8 0A D1 AE C6

E7 36 AB DA BB D9 D3 B1 55 84 BA 00 6E 24 AA FD

0E 87 24 4B F3 E4 69 FA C7 BF A0 E2 A6 75 39 26

CE BC 0D 50 3E 9C BC E3 F6 16 16 74 E4 95 6F E9

EF 55 9E FE 62 55 49 D9 B4 4B 4F 87 60 C7 1D 6C

F8 8D F1 BB 8B BF 79 EF 2C 08 DB 38 6F 21 6D D8

FE 8D 7E 9D 47 11 E2 5B 8B AB DB E1 00 FE 3C 8F

D3 04 F3 43 16 42 8F 25 E7 45 AF A9 5D 5F 76 7C

0B 8F 77 DB 42 D2 D0 F2 68 2F C1 0E 09 42 18 3A

54 A6 FC 6A 64 2F 71 91 9F E7 42 43 DB 81 32 BC

B3 2D 4B 0F D2 5F 4D AE 18 08 3E 6C BD C2 45 1F

11 C0 82 8D 3D 1F BE A0 27 F6 D3 52 CF 17 74 64

93 04 4E 6A E1 AE D7 34 76 A0 DE 0B 63 7F C0 C9

F0 A6 78 40 9A 3E 80 A7 6F E6 B0 BE 27 26 40 11

8C 06 FC 6A E7 A2 ED A6 C9 AD 99 DB 1F 3C D0 86

15 B8 05 83 A7 85 DE 8F 73 7B 00 49 DA EB 64 FB

07 55 64 E1 25 A9 C4 12 9C 11 27 B4 66 62 0D 4D

76 92 CD 57 65 8E 72 10 73 4E F9 43 50 00 F4 A1

BA 9D F7 7F E8 81 7B D5 AD ED CB D8 63 5C 03 AF

15 16 B3 A3 A4 23 AD FF 6B 56 6A 35 87 10 8B 94

17 25 0D BE 09 F3 42 07 96 1E 13 19 7B C7 C0 B5

88 C5 D8 77 33 E7 0B 47 D8 DD 7D C9 B4 74 21 D7

6E 65 BF 8E 2D 7A 70 C6 34 BC 11 06 30 72 82 D7

F4 54 7B 67 32 33 A1 06 16 91 17 18 72 95 08 BF

54 E0 F7 C7 EF B0 98 5D F0 A2 7C 85 60 81 06 EC

07 1C A9 78 9F 96 31 F6 97 B3 A6 C0 3D 3F 26 EE

CF A2 98 F3 D9 0F 64 C1 30 6D 1D 39 E6 FC 51 63

26 33 D1 BC 2B 95 CF E4 10 20 92 B6 94 E2 89 E8

31 0B B6 EF 6B 55 10 35 A1 80 0C CE B7 0B B8 66

96 DB 8E 71 ED C7 73 CF BA 51 26 71 17 47 5A 4A

92 07 BB E5 E2 12 69 33 10 E8 5B 3F 57 03 4D 1D

B0 7B 7B 61 02 56 A1 BF F0 A4 0F 0C ED 88 CE A4

F8 71 82 6F 48 3A 0F 72 48 17 75 DF 34 0F 79 98

12 FA F9 26 11 E9 B5 4D 42 0E 4C 91 68 16 BD 6F

7A 59 8C 07 1D 0F C3 A1 30 B4 62 14 DD 7F 1F 2A

9F 87 58 2E 74 47 D4 3D 59 95 43 71 33 2E 05 29

40 C3 06 3B 70 61 E0 FA 19 C2 99 5B 7F 9D E4 E4

3F 48 2E BC 48 6E CB 44 B5 59 73 B5 B4 70 1B 23

7A 34 C4 6B F3 B9 08 B3 FB B5 0F BE 17 B6 A3 6A

AA 76 6A 87 04 B9 45 91 55 FD 50 40 E1 89 F7 63

5B 57 2C 1C 37 B5 D0 4C BC 4D 1E 01 05 18 2A BB

CD 9F B2 50 3E 6F 5E AA 55 49 89 8E 17 07 99 D7

E5 6A 05 34 5E 79 EC 02 CA 66 A1 70 52 CF EA FB

A6 44 9C BA 9C D5 09 77 83 E5 02 F4 2E 59 6F 96

D2 15 35 04 BF 2E 27 5B 02 90 42 A3 45 D3 B3 99

84 15 A6 AA 46 8F 03

繼續閱讀