1. 程式人生 > >PC端QQ協議分析

PC端QQ協議分析

http://www.c78.net/anqn/web/12962.html

剛接觸PCQQ協議,根據以前借鑑了網上的協議分析文章,寫了個筆記,如發現有錯誤歡迎之處,我會改正本文

  有一款抓包工具很好用,名字是LCQQPaser

  0825傳送包:

  下載了個最新的QQ(QQ2014版本6.4),開啟抓包工具,登入QQ,登入資料被捕獲到了,捕獲第一個傳送的資料包如下:

  [NO.0 0 111.161.88.35:8000 SEND 147位元組]

  02 35 41 08 25 75 1A 40 2D 53 95 03 00 00 00 01

  01 01 00 00 67 25 00 00 00 00 6E AF 0E BA CF F6

  43 43 F9 64 70 90 D2 DB 45 A6 2F B8 B2 0C 28 5D

  EA 57 74 34 D9 31 F7 E6 D0 2F 95 69 E8 21 79 F2

  7F 5A 1B CD 30 21 20 6E 27 09 49 18 B4 1F DC F3

  18 0A AB BF 58 AA F5 F7 CD 82 85 40 32 FF FF 5F

  55 51 68 DF BC FB 5C 66 A2 1E 5C 05 7E 41 45 5A

  B2 20 73 C2 6F 1E DA 2D 60 BB 69 25 E7 C8 DD 74

  D3 ED 82 8B 82 9B D7 22 97 B8 A7 A3 A9 12 7F 09

  C8 53 03

  都是十六進位制的,分析如下:

  【

  02 //固定,頭部

  35 41 //版本,QQ每次升級都修改這個數

  08 25 //0825 傳送包和接收包對應標誌

  75 1A //序號

  40 2D 53 95 //QQ號碼

  03 00 00 00 01 01 01 00 00 67 25 00 00 00 00 //固定

  6E AF 0E BA CF F6 43 43 F9 64 70 90 D2 DB 45 A6 //0825key,tea演算法中加密的key

  //--------被tea演算法加密的資料,使用0825key可以解開

  2F B8 B2 0C 28 5D EA 57 74 34 D9 31 F7 E6 D0 2F 95 69 E8 21 79 F2

  7F 5A 1B CD 30 21 20 6E 27 09 49 18 B4 1F DC F3

  18 0A AB BF 58 AA F5 F7 CD 82 85 40 32 FF FF 5F

  55 51 68 DF BC FB 5C 66 A2 1E 5C 05 7E 41 45 5A

  B2 20 73 C2 6F 1E DA 2D 60 BB 69 25 E7 C8 DD 74

  D3 ED 82 8B 82 9B D7 22 97 B8 A7 A3 A9 12 7F 09

  C8 53

  //-------------------

  03 //固定,末尾

  】

  LCQQPaser中含有tea解密功能,輸入0825key和加密資料,解密後的資料如下:

  00 18 00 16 00 01 //固定

  00 00 04 45 00 00 00 01 00 00 14 F5//固定

  40 2D 53 95 //QQ號碼

  00 00 //第幾次登入

  00 00 03 09 00 08 00 01//固定

  6F A1 58 23 //要登入的伺服器IP

  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 1D 01 02 //固定

  00 19 //接下來要有多少個位元組(換成十進位制是25)

  02 AB D2 88 B8 10 D5 CC 8D DF 61 03 36 77 9F DD C3 03 B0 7E 36 68 B1 2B 98 //25個位元組,聽大神們說以後解決驗證碼問題

  0825接收包:

  【

  02

  35 41 //版本

  08 25

  75 1A //序號

  40 2D 53 95 //QQ

  00 00 00 //固定

  //-------被tea加密的資料

  32 80 66 71 36 38 BD 9D 7A 70 EC 77 D2 71 86 58 7C 86

  6A 49 5D 97 69 32 3E 6B AD 8E 0F C6 19 B5 86 E6

  46 76 22 CB 13 7B 2D FF 65 C1 0C 9F 6E C7 AD 29

  E5 C3 71 28 FC FD 15 45 34 43 FC 65 00 C0 68 E4

  5C 04 0D 9A CD 53 44 2E 1B AB 88 7F 16 E9 52 58

  E4 22 2B E3 FA B4 49 94 E3 FE 86 33 C9 F0 E8 EA

  C0 7B E3 48 6D 9B

  //------------------------------

  03

  】

  使用0825key將加密資料解密了,如下:

  00

  01 12

  00 38

  FB 5C 91 F3 8F 06 01 1A 27 F3 82

  72 EB AB A4 A0 F6 87 1C D3 04 E3 B4 04 7C A4 7D

  E8 81 83 68 C7 4C 52 5C 8B 02 F2 2E 9E 66 51 24

  61 61 C2 FF 43 F1 FD 7E 60 66 B0 3D 6D

  00 17 00 0E 00 01 //固定

  54 3D D1 2B //時間

  3D 8A B8 BA //返回的伺服器的IP

  A8 D5//埠

  00 00

  03 10 //某指令

  00 04//下面有4個位元組

  6F A1 58 23//傳送的時候用的IP