qq2007bate3协议分析

QQ即时通信协议分析

软件名称

QQ

软件版本

  默认版本为2007Bate3

分析平台

   Win2000 + sp2 

分析工具

   Wireshark0.99.3allydbg

分析人员

  

分析时间

   200707

第一部分登录 2

.cmd0x91数据包 2

.cmd0x62数据包 3

四.cmddd数据包 4

五.Cmd22数据包 6

第二部分数据传输 10

一.Cmd16数据包发送聊天信息的数据包 10

二.Cmd17数据包接收数据包 11

第三部分QQ中的P2P协议 12

.概述 12

.文件传输 12

.多媒体传输中的P2P数据包分析 18

第四部分QQ中的TCP上的数据分析 18

. TCP协议上的文件传输 18

第五部分 备注 26

.QQ消息的指令集 26

.接收到的消息类型 27

.关于QQTM 27

.QQ的包头标识 27

.关于QQ的版本信息 27

第一部分 登录

. cmd 0x91数据包

1. C->S  发送得数据

数据包(1):

00F75840  02 10 51 00 91 00 00 05 9C 48 4B 83 A2 11 CE 2E  Q.?.淗K儮?

00F75850  35 D9 30 15 96 B7 DC 86 2A 86 0B 74 BA 55 48 86  5?柗軉*?t篣H

00F75860  21 26 FE 06 23 2E 7A AE AC D8 82 63 05 30 31 C4  !&?#.z貍c01

00F75870  5D 01 82 27 58 52 5D 69 F5 39 1D 03              ]?XR]i?..

102   标识QQ数据包的开始位置

210 51 2007B3版的版本标识

300 91  QQ数据包的类型,即cmd

400 00  随机序列号,标志包的唯一性

505 9C 48 4B QQ号,这里的QQ号正常的顺序是0x059c484b转换成十进制是94128203

683 A2 11 CE 2E35 D9 30 15 96 B7 DC 86 2A 86 0B 密钥,该密钥用来加密数据包中之后的数据

774 BA 55 48 8621 26 FE 06 23 2E 7A AE AC D8 82 63 05 30 31 C45D 01 82 27 58 52 5D 69 F5 39 1D   被加密的数据部分。

803 数据包的结束标志

解密后的数据是:

00F757A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

2. S->C  接收到的数据

数据包(2

0012D32C  02 10 51 00 91 00 00 9C B7 75 0F E8 32 0D 70 B3  Q.?.u

0012D33C  75 86 78 91 B7 64 9E 03                          u唜懛d??..

110 51 00 91 00 00   包头,具体内容参见 数据包(1

29C B7 75 0F E8 32 0D 70 B375 86 78 91 B7 64 9E   密文,解密密钥为数据包(1)中的密钥

 解密后的明文是 00 00表示服务器接收链接

. cmd 0x62数据包

1. C->S  发送数据包

数据包(3

00F75A20   02 10 51 00 62 56 A9 05 9C 48 4B 00 03           Q.bV?K..?

1)包里只有一个数据00

2. S->C 接收数据包

 数据包(4

0012D32C   02 10 51 00 62 56 A9 00 18 6B 8E 8E D8 00 3C 70    Q.bV?k帋?

0012D33C   EA 2B CB 78 66 29 75 5F 39 6B 52 F1 39 DF 56 EC   ?藊f)u_9kR?遃

0012D34C   3E 03    

(1) 00 18  表示后续数据的长度

(2) 6B 8E 8E D8 00 3C 70 EA 2B CB 78 66 29 75 5F 39 6B 52 F1 39 DF 56 EC3E 向服务器端发送的一个令牌

注:以上两个数据包均为明文,未加密。

.cmd ba数据包      

1.  C->S.发送数据包     

数据包(5

01004A08   02 10 51 00 BA 58 AA 05 9C 48 4B E6 6A CF 7F C4   Q.篨?淗

01004A18   29 CC 1D 6E E0 CB FA 8D A6 54 0D D2 CC 8C 69 A3   )?n嗨鷯.

01004A28   79 00 EE 86 71 01 51 66 0A C3 08 73 85 0C B3 FC   y.顔qQf.?s

01004A38   A0 0E C5 91 1D 1B 51 95 69 01 60 02 2F 2E 7F A4   ?艖Q昳`/

01004A48   D3 C6 3C 92 BE F1 F2 70 87 9E 9A 03

                             

110 51 00 BA 58 AA 05 9C 48 4B     包头

2E6 6A CF 7F C429 CC 1D 6E E0 CB FA 8D A6 54 0D 密钥

3D2 CC 8C 69 A3…………   是密文

解密后的明文是:

00F75890   18 6B 8E 8E D8 00 3C 70 EA 2B CB 78 66 29 75 5F   k?<p?f)u_

00F758A0   39 6B 52 F1 39 DF 56 EC 3E 03 00 05 00 00 00 00   9kR??.....

00F758B0   00 00 00 00 23 2E 7A AE AC D8 82 63 05 30 31 C4   ....#.z貍c01

1.18    数据包4中的令牌长度

2. 6B 8E 8E D8 00 3C 70 EA 2B CB 78 66 29 75 5F39 6B 52 F1 39 DF 56 EC 3E  从包4得到的,由服务器发来的令牌。

3. 03 00 05 00   为固定值

2. S->C 接收数据包

数据包(6

0012D32C   02 10 51 00 BA 58 AA 5D 32 C9 CE 9A F6 A8 15 A4   Q.篨猐2

0012D33C   07 DC 65 23 33 96 3A 48 B4 EB 2F 30 36 96 53 45   躤#3?H措0E

0012D34C   7B AA 22 CF 38 F6 31 AA B0 2C EF AC BA 34 D9 16    {???,铿

0012D35C   25 79 12 2A A9 D9 FA 03

110 51 00 BA 58 AA     包头部分

2. 5D 32 C9 CE 9A F6 A8 15 A4………… 加密数据,该数据的解密密钥为数据包(5)中保存的密钥

解密后的数据:

03088650   03 00 05 00 00 20 04 C4 35 9F 13 C7 34 2D 72 37   ... ???-r7

03088660   BB C9 12 66 4C 07 97 25 8C 09 63 5B C2 8B F6 2F   簧fL ??c[?

03088670   5B DB 34 1F 24 05 

  

103 00 05 00     数据包(5)中的数据解密后,也出现了该数值。

200 20 令牌的长度

304 C4 35 9F 13 C7 34 2D 72 37………… 服务器向客户端发送的令牌的内容

四.cmd dd数据包

1. C->S发送数据包

数据包(7

00849F48   02 10 51 00 DD 5C BF 05 9C 48 4B 00 E2 7D 18 71   Q.輁?淗K.

00849F58   99 75 13 14 31 6E 2B 0C CE 49 C5 DE 9C EA 83 1D   檜1n+.蜪呸滉?

00849F68   D9 B2 D0 38 CE AB C0 3B 8B 26 8E 43 25 99 99 BB   俨?潍??嶤%櫃

00849F78   86 1F 5A 8B 53 69 6D C0 6A 56 B8 35 1C D5 E5 57   ?Z婼im纉V?斟W

00849F88   C6 8A 6D 33 78 03 4B 5A 81 B8 2F 27 BD 24 16 02    茒m3xKZ

00849F98   E5 A3 3C 61 5F 83 4B F7 FC 52 AF 8B 9A 3C F3 31   澹<a_僈鼽R瘚

00849FA8   8B EE E3 98 2B 25 47 79 09 74 27 36 A3 EE 38 B1    銟+%Gy.t'6n8

00849FB8   FB E6 DE AD B7 02 00 4A 68 E6 0C 71 E0 DF 02 B5  蕲?.Jh?q噙

00849FC8   0E 26 95 71 B7 97 1E 66 B0 C7 36 4F E1 C3 D5 9B    fsdfds

00849FD8   79 EA C1 A9 7D D7 AB A6 BA 2B B9 5D 33 78 1A DB   y炅﹠撰+筣3i

00849FE8   9A 4A 5A C1 09 F0 9B 5A D7 FD 19 6F 43 C7 24 96    欽Z?饹ZoC

00849FF8   F6 DA 5A 3F 46 E1 9B 40 B3 53 D0 4B 07 87 D0 95    鲒Z?F釠@砈蠯 k

0084A008   64 00 2D AA 81 EC FE 0C 01 25 DF 41 37 97 8B 79    d.-獊忐.k7棆yk

0084A018   F1 6B 2F 45 2D C6 37 5C 48 9C 45 47 FB 3D 32 56   駅/E-?/H淓G?2V

0084A028   83 4F C8 42 2B 4A 80 98 A9 88 84 BA EE 33 95 0E   僌菳+J€槱垊侯?

0084A038   A8 19 09 03 00 00 00 00 00 00 00 00 00 00 00 00    ?.............

110 51 00 DD 5C BF 05 9C 48 4B    数据包头

200 E2 7D 18 7199 75 13 14 31 6E 2B 0C CE 49 C5  密钥,后面的加密数据是由该密钥加密得到的。

3DE 9C EA 83 1D   被加密的密文。

解密的数据是:

00849D28   00 5F 00 00 08 04 01 E0 20 04 C4 35 9F 13 C7 34   ._..f

00849D38   2D 72 37 BB C9 12 66 4C 07 97 25 8C 09 63 5B C2   -r7簧fL ??c

00849D48   8B F6 2F 5B DB 34 1F 24 05 00 20 81 07 F3 22 CE   嬾/[?$. ??

00849D58   FE 80 2A 17 B6 79 5E A5 74 6D 9E DF E5 1C B4 E1   *秠^m炦?瘁00849D68   92 12 7A C9 27 F5 F3 EC 35 C4 01 00 14 93 6C 8F   ?z?躞??.搇00849D78   73 DA 15 FE 70 A7 BE 48 0A D6 B4 79 26 6C FC 56   s?ЬH.执00849D88   A9 00 67 00 10 51 00 BA 58 AA 05 9C 48 4B E6 6A   g.Qdhghgfhr55

00849D98   CF 7F C4 29 CC 1D 6E E0 CB FA 8D A6 54 0D D2 CC   ???n嗨鷯.姨00849DA8   8C 69 A3 79 00 EE 86 71 01 51 66 0A C3 08 73 85   顔qQf?sh

00849DB8   0C B3 FC A0 0E C5 91 1D 1B 51 95 69 01 60 02 2F   滁?艖Q昳/

00849DC8   2E 7F A4 D3 C6 3C 92 BE F1 F2 70 87 9E 9A 03 00  び?捑耱p嚍?.

00849DD8   CA BD CE AA A1 BE 55 44 50 B5 C7 C2 BC B7 BD CA   式为【UDP登录方00849DE8   BD A1 BF 0D 0A 00 00 00 00 00 00 B7 A2 CB CD D0   健?.......发送

00849DF8   C2 B5 C7 C2 BC B5 DA D2 BB B2 BD D6 E8 CA FD BE  碌锹嫉谝徊街枋

00849E08   DD 0D 0A 00 00 00 00 00 00 00 00 00 00 00 00 00   ?..............

1. 00 5F 00 00 08 04 01 E0 命令集,该处数值固定

(2). 20    令牌长度

304 C4 35 9F 13 C7 342D 72 37 BB C9 12 66 4C 07 97 25 8C 09 63 5B C2 8B F6 2F 5B DB 34 1F 24 05    该值是由服务端通过数据包(6)发来的,此刻,客户端再把该令牌发回服务端。

400 20  密码验证串长度

581 07 F3 22 CE FE 80 2A 17 B6 79 5E A5 74 6D 9E DF E5 1C B4 E192 12 7A C9 27 F5 F3 EC 35 C4 01    密码验证串

600 14 数据段的长度

793 6C 8F 73 DA 15 FE 70 A7 BE 48 0A D6 B4 79 26 

6C FC 56 A9       数据段的内容,作用未知

800 67   剩余的数据段的长度

9       10 51 00 BA 58 AA 05 9C 48 4B E6 6A  

CF 7F C4 29 CC 1D 6E E0 CB FA 8D A6 54 0D D2 CC

8C 69 A3 79 00 EE 86 71 01 51 66 0A C3 08 73 85

0C B3 FC A0 0E C5 91 1D 1B 51 95 69 01 60 02 2F

2E 7F A4 D3 C6 3C 92 BE F1 F2 70 87 9E 9A 03

10 51 发送端的版本号

05 9C 48 4B QQ号

完整的数据包(5

10CA BD CE AA A1 BE 55 44 50 B5 C7 C2 BC B7 BD CA BD A1 BF 0D 0A 中文

11B7 A2 CB CD D0 C2 B5 C7 C2 BC B5 DA D2 BB B2 BD D6 E8 CA FD BE DD 0D 0A

中文为:发送新登录第一步骤数据

2. S->C发送数据包

数据包(8

0012D32C   02 10 51 00 DD 5C BF DF A3 C9 28 EC 6B F6 C2 8F   Q.輁窟I(靕

0012D33C   72 3F 1F 68 8F 8D 49 94 8D BF A3 16 0B 56 17 F8   r?h弽I攳浚

0012D34C   B8 1D 2C C5 34 42 DA DB 53 C6 2B BA B0 AE 0A 51   ?,?B谯S?喊?Q

0012D35C   43 B8 18 67 82 8C 63 F5 99 74 28 5E 8C DB 3E 6E   C?g倢c鯔t(^p

0012D36C   3A 62 5F A4 2E B9 D3 C5 1A 73 8B 96 97 90 9A 69   :b_?褂?s嫋棎

0012D37C   2D 56 FB 32 52 27 22 8D 91 80 68 FF B2 31 BD D4   -V?R'"崙€h?

0012D38C   B0 13 AF 95 BA 48 51 56 D3 11 1B C0 5F 39 76 A5   ?瘯篐QV?繽9

0012D39C   08 10 58 3C 19 1D E2 6D BB FD 8A 1E 84 28 84 BC   X<鈓积??

0012D3AC   B8 2D 7B 81 33 31 7E 87 F9 4F DC D2 6B 45 0B 8E   ?{?1~圌O芤kE 0012D3BC   DA 4C C0 6C 05 0D 3C 3A 5F BC C2 26 5C 59 26 C5    贚纋.<:_tyut

0012D3CC   C0 28 9A 81 80 13 2D 63 E5 94 4E CF 64 17 65 03   ?殎€-c鍞N蟙

110 51 00 DD 5C BF  数据包头

2DF A3 C9 28 EC 6B F6 C2 8F   密文,解密密钥是解密密钥是用户密码MD5后生成得密钥,(解密失败后数据包7中的密)。

解密后:

02FF0960  00 97 00 00 00 77 91 00 20 6D 60 02 12 75 46 B5       .?..w? m

02FF0970  64 08 1B 98 E0 0D 95 E8 B4 3A 45 A9 E9 34 33 CF    d樴.曡?E

02FF0980  7D 13 90 71 F0 C9 AE 6C 26 00 20 50 D0 33 EA AE    }恞鹕甽&. 

02FF0990  08 1D E0 1E A0 C9 B5 F7 BF 0D F8 65 31 5D 81 25    ?犐调?鴈

02FF09A0  A4 DF 01 80 78 12 D9 5C 0A 58 E4 00 38 82 DC F1    み€x賊.X?

02FF09B0  2B BA 52 A2 E8 86 8A A9 DC B3 30 1C 85 34 50 82    +篟㈣唺┸?

02FF09C0  A8 DC AA 90 12 60 EA 64 A5 4D C9 43 0A 29 0E 2B    ㄜ獝`阣

02FF09D0  EC 82 91 C2 C3 B3 0F 64 F2 05 3A A1 9F 8B BD 2F    靷懧贸d?:

02FF09E0  C5 D5 FA 2C 0C 59 53 52 71 78 47 71 62 68 4B 78    耪?.YSRqxGqbhKx

02FF09F0  55 36 35 36 70        U656p......?...

100 97   数据包的长度

200 38   长度,该值固定

382 DC F12B BA 52 A2 E8 86 8A A9 DC B3 30 1C 85 34 50 82…………

该数据用于添加到C->S 22包中的数据部分。由服务器生成,值不固定

459 53 52 71 78 47 71 62 68 4B 7855 36 35 36 70用于加密C->S 22包的密钥,是由服务器随机生成的,值不固定,长度固定

五.Cmd 22数据包

1.C->S 数据包

数据包(9

0308B6DC   02 10 51 00 22 5F DB 05 9C 48 4B 00 38 58 75 2F   Q."_?淗.8X

0308B6EC   1D F6 6C 2C C9 C4 A3 31 90 C4 4F 1A BD DA 60 A8  鰈,赡?惸O

0308B6FC   69 8C 6E FF CA DD D8 AC 3E 60 8A 05 5E 32 65 6C   i瘦噩>^

0308B70C   D6 D1 5C D0 77 DC 50 C8 F9 C0 9D 1D 13 5B 80 0E         盅/衱i

0308B71C   98 5D F9 10 FC FA 98 9A FC FC 18 32 7E 19 6F DA   榏?槡

0308B72C   21 47 23 F1 51 B1 F4 A9 39 D1 8C 9C BB 88 22 71   !G#馫濒q

0308B73C   6C 6E 7E 19 1C 77 E9 A6 DA 3C E7 68 46 E4 A6 C1  ln~w棣?鏷F

0308B74C   2F C0 EE 05 EA A1 BB 2F D0 97 F0 3B 08 12 E3 A7   /李辍?袟?

0308B75C   86 43 2B F4 B7 46 0F A6 F2 FC DF DE 0B 30 D0 FA   咰+舴F︱?0

0308B76C   1B B4 EA 10 D5 4B 30 8B 92 99 78 78 5C 2A 39 37   搓誎0

0308B77C   18 72 CB F8 F8 FC 91 98 44 CF 01 2A F3 CC 58 FD   r锁憳o

0308B78C   B8 90 A9 1A B2 26 DF CB 48 A1 A2 F9 22 6F 57 5C   笎??咚HoW

0308B79C   FB C1 99 2D 12 F5 B8 EA 97 19 40 23 A5 36 A9 4F   ?醺陾@p

0308B7AC   88 8A 17 08 0A 9D 03 79 A6 7B 3E 69 94 B8 B1 F0   垔.?yi

0308B7BC   A2 D4 6F 04 D8 F7 D5 5C 4E 57 48 55 43 F4 0A 1A   ⒃o伧誠WH

0308B7CC   BB FA A5 AD C1 6D 20 82 6C BE 57 D4 A4 E0 C9 A0   机キ羗 俵

0308B7DC   27 3F 8F D0 85 9B 7B E6 B7 82 BB 8B BC C3 F8 42   ?徯厸{娣偦

0308B7EC   13 1C EA E4 7C 28 99 9E C3 BC BA AB 9D 13 D9 2B   赇|(櫈眉

0308B7FC   59 0C C2 1E DA 57 29 93 FA CB 98 04 AB EA 41 3B   Y.?赪)擔藰;

0308B80C   C1 F1 77 23 90 76 AD 4B 18 C5 2E 14 7B 8B 4D 1E   榴w#恦璌?

0308B81C   1C 07 EA 98 BE 77 88 FF 68 08 92 18 CA 57 45 64   陿緒?hEd

0308B82C   FC 5E 29 75 A0 F8 F0 F1 9B 93 04 5F 60 C3 8A 07   黕)u狓瘃

0308B83C   BD 65 AE 98 07 AA 9D A1 0F 61 AF 5B 1B 19 2E 3D   絜畼 獫?a痆

0308B84C   4E 4F DB AC B5 8D 17 DF BB 65 41 D9 AE 60 52 68   NO郜祶呋e

0308B85C   EB AD 9E A4 1D 23 3B 79 8D BD 15 9C EC 38 0B 3F   氕灓#;y嵔

0308B86C   5E D7 7F 74 98 BB 99 CD 85 DF D8 70 DC 8B B2 1D    ^?t樆櫷呥

0308B87C   90 DF 08 BD D8 14 99 C5 89 A4 11 39 C1 57 A3 61   愡截櫯墹y

0308B88C   D5 E6 34 CC C2 7F 03 11 BA 31 2F 77 32 A2 C9 41   真4搪?/

0308B89C   BE 72 0D B6 A7 AF C1 B1 E9 C6 62 D1 C5 0F 03 78   緍.锭遍芺

0308B8AC   00 81 1D 16 3C 80 B9 3D E9 7D 00 E1 4B DE 80 E2   .?<€?閩.

0308B8BC   EE A6 ED 57 C2 CF 4C 0F 91 51 C2 22 3E CE 51 30   瞀鞼孪L慟?

0308B8CC   A6 83 FD F9 01 EA 6F 0A 95 47 A0 14 04 C2 5B 40  阰.旼?耓@

0308B8DC   76 33 3B 09 86 4A B5 57 2A E8 1A 65 9A 5D D1 B4   v3;.咼礧*?

0308B8EC   63 AD 58 DB E3 CC 3A 6B 6D B5 17 31 26 7A EC 4B   c璛坫?km?1

0308B8FC   4B 0E 6B B5 28 C0 2F 56 20 A1 DD 76 8C 96 23 ED   K

0308B90C   5F D1 69 C3 31 43 20 47 59 D0 E0 FF E9 AE 88 16   _?C GY

0308B91C   F6 A2 78 F4 48 03                                 觫x鬑..

110 51 00 22 5F DB 05 9C 48 4B   数据包头

200 38 58 75 2F…………  是由数据包(8)解密后的一段数据。

3FA 98 9A FC FC 18 32 7E 19 6F DA…………   登录数据的加密数据,该数据的加密密钥是数据包(8)中的密钥,

数据块(3解密后的数据是:

00F69B70   00 00 00 20 C4 30 C4 5B 96 4D 97 3E F5 C1 9A 2D   ... ?腫朚??

00F69B80   59 18 F4 04 C9 89 A5 6C 23 B8 78 91 22 27 41 E3   Y?蓧#竫A

00F69B90   F6 A5 23 D2 57 6F 8F 1B AD A6 F8 B6 72 2E F0 0E   謦#襑o?r

00F69BA0   41 CF 5A 3B 00 00 00 00 00 00 00 00 00 00 00 00   A;..........

00F69BB0   00 00 00 00 00 00 00 73 19 5B E2 0D 81 E0 BE AE   .......s[?

00F69BC0   DF 60 39 B8 44 6B E9 F2 0A 00 00 00 00 00 01 00   違9窪k...

00F69BD0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ..........

00F69BE0   00 00 3B 39 76 45 67 6D B4 4E 83 39 3E 07 4B EC  .;9vEgm碞o

00F69BF0   54 3A 20 04 C4 35 9F 13 C7 34 2D 72 37 BB C9 12  T: ???-r

00F69C00   66 4C 07 97 25 8C 09 63 5B C2 8B F6 2F 5B DB 34   fL ??c[聥?[?

00F69C10   1F 24 05 00 00 00 06 00 00 00 00 00 00 01 40 01  .........

00F69C20   C9 99 CA 81 00 10 FA 5C DE D3 B7 73 2F 3D 37 B6   蕘.鶿抻=7

00F69C30   80 BD D9 70 15 4F 00 00 00 00 00 01 00 00 00 00   €劫O......

00F69C40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02  ............

00F69C50   B9 11 4E EE 00 10 0F 0B 5F D6 71 C3 A9 9F B7 52  ?N?_謖R

00F69C60   92 6A AA AF 85 0E 00 00 00 00 00 00 00 00 00 00   ?.......

00F69C70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ............

解密后的数据长度是0x23a个字节,在2007B3版中该长度固定,由于在该段数据的尾部有大量的00,在上面的数据块中略去。

100 20 数据块的长度

2C4 30 C4 5B 96 4D 97 3E F5 C1 9A 2D…………  该数据块长度固定,内容不固定

357 6F 8F 1B AD A6 F8 B6 72 2E F0 0E 41 CF 5A 3B 该值为以密码的两次MD5值为密钥,对空字符进行加密后的密文。

473 19 5B E2 0D 81 E0 BE AE DF 60 39 B8 44 6B E9 该值对于所有用户来说为定值, 

50A 登录方式,0A表示上线,28表示隐身

620  数据块的长度

704 C4 35 9F 13 C7 34 2D 72 37 BB C9 1266 4C 07 97 25 8C 09 63 5B C2 8B F6 2F 5B DB 341F 24 05  数据块的内容,为命令0xbaè C)第一次响应的密文内容

2.S>C数据包

数据包(10

0013D32C  02 10 51 00 22 1C 0C 25 5F DD 58 AD EC 29 64 D8   Q.".%_d

0013D33C  31 21 3F DC 69 78 3B 2B 5C 0B BD 99 80 E2 96 4B   1!?躨x;+/

0013D34C  D5 05 0F A4 A8 09 DC 5C BD 47 20 11 65 75 37 31   え.躙紾 eu71

0013D35C  9B 45 4F 9D 3D 44 2E E7 63 8D 51 21 11 03 9A 80   汦O?D.鏲峇!

0013D36C  08 D8 BB 65 DA 58 A0 EA EA BD 0D 93 2C 3F FB 69   鼗e赬犼杲.

0013D37C  6F E5 43 F8 4B 84 31 42 6C 36 F7 29 00 BD 15 1E   o錍鳮?Bl6?.

0013D38C  A1 FC BF 67 3C 82 B7 80 D2 35 D0 56 F4 D4 D4 22   ↑縢<偡€??

0013D39C  C2 DB DC 18 65 C6 E1 C3 C5 B0 90 12 81 96 17 72   论?e漆仏r

0013D3AC  4F FB 5C BF E1 3A 83 72 28 7E 47 D8 C7 0F 23 E6   O鸤酷:G厍

0013D3BC  6F 92 3D EE B6 66 06 2D 2D 77 67 3B DC 94 7E B1   o?疃f--wg;

0013D3CC  B1 2D 5D FF 8B 74 15 D0 D1 BA 11 A3 29 AA 21 73   ?]???s

0013D3DC  D0 4E 88 7A B7 F6 F1 4B C5 4C 7A B7 94 A5 23 04   蠳坺扶z窋?

0013D3EC  6F 0B BE 77 57 20 7A 11 03 15 68 96 8D 33 92 30   o緒W z?

0013D3FC  47 C7 12 25 A4 91 26 DA 4C BD A9 33 32 67 87 F9   G?%&贚2g

0013D40C  4F A5 3A C1 54 6E F5 8C 70 1C 34 22 E8 8A 9D 42   O?罷n鯇p4

0013D41C  7C 32 3D 98 BF 06 33 03

110 51 00 22 1C 0C  QQ包头

225 5F DD 58 AD EC 29 64 D8………… 加密数据,长度是f0,长度固定

对这个数据包的加密数据段进行了两次解密,第一次解密用的是数据包(9)的加密密钥,在解密错误后,调用由用户密码变换后产生的密钥(见注)进行解密。

注:该密钥是由用户密码经过两次MD5散列后的0x10长度的字符串

测试用的密钥是:

01028F10   51 4E 6C C0 89 67 01 EA 3D 5A 87 42 C1 25 07 06  QNlg?Z?

该值对于特定的QQ号来说是固定的

解密后的数据:

03169690  00 37 77 4E 67 46 48 70 65 44 62 51 70 49 65 79   .7wNgFHpeDbQpIey

031696A0  44 05 9C 48 4B D2 48 C5 24 0F A0 7F 00 00 01 1F   D淗K襀??..

031696B0  40 46 B1 6E 6F 03 0A 00 00 25 E2 06 55 7D 66 76   @F眓o...%?U

031696C0  D3 C0 45 27 D5 DD B7 CD 00 35 68 8F A9 1D ED 2D   永E'蛰吠.5?

031696D0  64 12 F4 00 00 00 00 1F 40 DA 55 8A 45 1F 40 00   d?...@赨u

031696E0  00 42 00 00 00 00 00 E8 0E 2C 88 E7 DD 05 55 DA  .B.....??

031696F0  DE 0A F8 9B 84 08 31 92 90 73 A3 E0 BC D6 E9 A3   ?鴽?1拹s

03169700  53 28 5A 64 02 09 9D 00 00 00 01 00 00 00 00 00   S(Zd.?....

03169710  00 00 00 34 EA 1B 88 46 B1 6E 1D 46 70 F5 62 46   ...4?團眓F

03169720  9E 28 61 00 0A 00 0A 01 00 00 0E 10 01 14 8F FE 

03169730  4F BA 34 00 00 00 00 00 00 00 00 00 00 00 00 00   O?..........

03169740  00 00 08 02 04 08 08 08 08 08 04 02 00 28 67 93   ...

03169750  5C D6 4C BB A2 94 04 EA CC 8E 14 36 72 2C B0 CF   /諰虎?晏?6

03169760  62 82 51 FA D2 1A 85 B9 92 EF 61 CA C1 7B 4B 85   b俀吂掞a

03169770  3A FC 02 FE A1 2E 00 00 00 00 00 00 00 00 00 00   :?.........

03169780  00 00 00 00 00 00 00 00 01 01 00 00 21 00 00 00   ...........

100 表示成功登录 

237 77 4E 67 46 48 70 65 44 62 51 70 49 65 7944   sessionKey,在特定时间段里,多次连接,该值固定。

305 9C 48 4B  QQ

4D2 48 C5 24  客户端的IP地址

50F A0  客户端的端口号d 4000

67F 00 00 01  ip地址:127.0.0.1

71F 40 端口 d  8000

846 B1 6E 6F登录时间

第二部分  数据传输

一.Cmd 16数据包  发送聊天信息的数据包

获得的数据包加密数据段是:

00000000  51 2E C8 82 B6 7D E9 2D-4F 08 08 26 15 61 D4 15    Q.葌秨?O..&?

00000010  20 BE E1 21 D6 7C 85 F1-28 17 18 28 78 99 F0 98     踞!謡咇(..(?

00000020  15 C8 33 BF F1 9B 71 D9-8F 85 F1 CB 5C 5F B0 8D    .?狂泀購咇薥p

00000030  12 49 48 FF CE 93 F1 6A-CC D9 68 8A 84 5E 19 30    .IH螕駄藤h0

00000040  01 BB 47 99 26 8C 18 96-FA 2D D9 29 B1 19 F6 9E    .籊??桗-?r

00000050  55 9C 4E A0 DB 57 AC 01-C7 16 74 A4 FE 9F E1 18    U淣犤W??t

SessionKey

00000000  79 56 6B 62 49 7A 51 66-73 42 47 50 66 63 6B 45    yVkbIzQfsBGPfckE

解密后的到的明文是:

00000000  05 9C 48 4B 04 BE 1D 65-10 51 05 9C 48 4B 04 BE    .淗K.?e.Q.?

00000010  1D 65 CF BC 99 B5 50 53-59 6F 66 32 9D BB 6B 1E    .e霞櫟PSYofk

00000020  3F 3F 00 0B 48 31 46 B8-12 99 00 06 00 00 00 01    ??..H1F??..

00000030  01 00 80 00 01 D7 EE BD-FC C3 A6 CA B2 C3 B4 C4    ..€..最近?

00000040  D8 A3 AC 0A 20 00 09 00-00 00 00 86 02 CB CE CC    兀? .....?

00000050  E5 0D                                              ?

105 9C 48 4B  发送消息者的QQ

204 BE 1D 65  接收消息者的QQ 79568229

310 51 发送方客户端的版本号,这里表示2007B3

4CF BC 99 B5 50 53-59 6F 66 32 9D BB 6B 1E3F 3F  接收QQ号+session KeyMD5 

500 0B  固定值

648 31  消息序列

746 B8-12 99   发送时间,自197011日起的秒数

800 06 头像

900 00 00 01 新版的标识,(这里的新版不是指2007B3版),可能在于区分后边是否带有字体信息

1001 00 80 00 相对以前的版本,这个段的数据发生了变化,应该四数据包的序号

1101  消息类型。0x01,普通消息。0x02,自动回复消息

(12)D7 EE BD-FC C3 A6 CA B2 C3 B4 C4 D8 A3 AC 0A 20  聊天内容

(13)00 09 默认值,

00 0B 字号11

00 0C 字号12

00 0E 字号14

00 10 字号16

00 12 字号18

00 14 字号20

00 16 字号22

加粗是 20

斜体是 40

下划线是 80

1400-00 00 颜色 表示黑色;FF 00 00 表示红色

1500 86  字符编码,0x86GB23120x00,英文字符

1602 CB CE CC E5 0D 与字体相关。 //宋体的汉字

二.Cmd 17数据包  接收数据包

获得的数据包加密数据段是:

00000000  50 76 6A 93 B3 19 3B 08-45 5B 93 88 C1 69 00 8C   Pvj摮.;.E[?

00000010  D8 5A A3 E0 59 F3 FB 35-BA FD 4E 84 4F BF C9 56    豘`Y篼5糊V

00000020  01 48 D3 B6 E8 7B 56 65-DF 9B 75 4D 8B 50 AD AE    .H佣鑬Veu

00000030  F9 D7 47 DC 22 F0 A2 2F-FC CE 47 BA 62 97 F3 3E   G?稷/G篵i

00000040  AC AA 77 09 F3 38 EE CB-14 55 28 14 6D 0F 84 50   w.?钏.U(.m

00000050  59 B8 E0 95 67 D2 DF CB-11 7D 5A 28 14 F4 16 B5    Y膏昰疫?}Z?

00000060  97 5E 28 41 45 91 CE BA-3B 25 D8 65 C2 DF FE 35    梌(AE懳??

00000070  BE FB 83 B6 CF 31 05 92-71 9B 96 4E AE A4 76 0C    钧兌?.抭v.

SessionKey

00000000  79 56 6B 62 49 7A 51 66-73 42 47 50 66 63 6B 45    yVkbIzQfsBGPfckE

解密后的到的明文是:

00000000  04 BE 1D 65 05 9C 48 4B-00 0A D1 05 3A 3C 0F 37    .?e.淗K..?7

00000010  1F 40 00 84 10 1F 04 BE-1D 65 05 9C 48 4B 00 15    .@.?..?e.淗K

00000020  3C 14 06 A3 8C E2 54 D1-86 B1 27 10 82 24 00 0B    <..釺褑?.

00000030  7B C7 46 B8 11 C6 01 59-00 00 00 01 00 00 00 00     {荈??Y...

00000040  00 00 00 00 01 00 A7 00-01 D6 D0 CE E7 B6 BC CA    ......?.中午

00000050  C7 C1 AC D0 F8 CF C2 C0-B4 20 34 B5 E3 CF C2 B0    橇?4点下?

00000060  E0 20 00 09 00 00 00 00-86 02 CB CE CC E5 0D       ?......?宋体.

104 BE 1D 65 发送者的QQ

205 9C 48 4B 接收者的QQ

300 0A D1 05     消息的序列号

43A 3C 0F 37 发送者的IP

51F 40 发送者的端口号

600 84 接收包的类型

710 1F 发送者的QQ版本号

800 153C 14 06 A3 8C E2 54 D1-86 B1 27 10 82 24  发送方QQ号+session KeyMD5 值。

900 0B  固定值

107B C7  序列号

1146 B8 11 C6  发送时间

1259 头像

1301 旧版是00,新版是01

1401 消息类型。0x01,普通消息。0x02,自动回复消息

15D6 D0 CE E7 B6 BC CA C7 C1 AC D0 F8 CF C2 C0-B4 20 34 B5 E3 CF C2 B0 E0 20 消息的内容

1600 00 00  颜色

1786 字符集

1802 CB CE CC E5 0D 字体

注:一般消息的接收数据包中,QQ数据包头的版本号是01 00,表明是由服务器发送来的

三.Cmd 26数据包  好友列表数据包

第三部分  QQ中的P2P协议

概述

    QQ即时通信中点对点协议的有以下应用,一个是QQ的影视频传输,另一个是QQ的文件传输。

QQP2P协议包头如下:

                                     03 0f 45 47 bf 8b  .k...z.G....EG..

0030   ed 20 bd 24 f0 f3 00 00 11 00 01 52 52 00 38 b6  . .$.......RR.8.      

0040   0d 00 00 0e 84 bb a8 d0 c4 2e 6d 70 33 00 87 ac  .....花心.mp3...     

0050   84 a3 92 81 92 9e c1 02 00 00 00 00 00 03 0c 00  ................

…………

协议包头的长度是0x11个字节。其中:

1. 03 表示该数据包是点到点传输的数据包,与02表示通过服务器中转的数据包向对应。

2. 0f 45  数据包发送方的QQ版本号。

3. 47加密双方QQ号用的密钥

4. bf 8b ed 20  发送方的QQ号(密文)

5. bd 24 f0 f3   接收方的QQ号(密文)

6. 00 作用未知。

7.  00 11  标识数据内容的类型,00 11 表示是数据包中是传输的文件,00 05表示数据包中的内容是音视频等多媒体信息。

8. 00 01 表示数据包的序号。从00 00 开始技术。

9. 52 52 00 38 b6…………等是p2p数据包中要传输的数据。

 QQ号的解密方法:

1. 将密钥47 扩展成0x47474747 

2.  QQnumber=~Bf 8b ed 20 ^ 47 47 47 47

3. 转换成10 进制QQnumber120804760

~运算符表示去反。

文件传输

(一)使用UDP底层协议,实现的文件传输

   1.概述

1QQ2007B3版的文件传输可以采取UDP协议作为其底层协议,所采用的端口不固定。数据采取明文传输,但文件传输请求的包是密文的“Cmd 17数据包”,通过标准的解密工具可以解出明文。

   (2.文件传输的数据包采用QQP2P数据包进行数据传输,在文件传输的数据包中包含完整的P2P包头,详细内容见上文。

   (3.由于是明文传输,无需解密就可以的到所传输文件的文件名称、文件长度、和文件内容。

   

2. 文件传输请求数据包分析

   该包是标准通过服务器转发的02数据包,而非QQP2P数据包。作用是发送一个要求传输文件的请求。

上文中提到的解密程序支持该密文的解密

密钥:

00000000  71 49 7A 77 57 33 37 69-74 4A 48 42 72 56 78 32    qIzwW37itJHBrVx2

密文:

00000000  AE AE 01 B7 22 19 3D B5-0B 5F E6 86 B9 DD 21 28    .?.=?_鎲馆!(

00000010  93 20 A9 43 EE 17 52 4C-2B 42 82 8A 65 B7 63 FA     ?〤?RL+B倞e穋?

00000020  18 65 4E 31 DE 31 1C D0-83 63 28 90 2C E6 3E 14     .eN1?.袃c(??.

00000030  0D 27 9C 80 27 38 89 54-F2 D5 98 D7 10 F8 52 89    .'渶'8塗蛘樧.?

00000040  35 61 76 19 BA E5 4D FC-1E 97 87 C9 2A 55 2F 48     5av.哄M?棁?U/H

00000050  29 1F 49 12 89 78 01 59-D0 01 3A 08 79 CD B2 F8     ).I.墄.Y?:.y?

00000060  C8 DE E4 A1 9E AB 31 46-C4 89 07 6B 19 B5 22 37     绒洹灚1F.k.?7

00000070  81 4F C3 8F 69 FC 95 C8-EF 1C 51 2B A5 59 41 E0     丱脧i鼤蕊.Q+A?

00000080  E0 3E 0C D9 1B 3B CC 8A-F8 1B DC 3E 3F 96 27 EE    ?.?;虋?????

00000090  80 95 85 34 41 29 7D 31-FC DD 4B AA E7 8F 38 7F     €晠4A)}1K?

000000A0  AC 90 07 A8 F2 10 C5 CE-3D AE 2A 9E DE 84 3C EA     瑦..盼=?炥??

000000B0  13 06 39 9A BA AE 93 67-EE 71 BD 47 9E BE C1 AF     ..9毢畵g顀紾灳

000000C0  13 EF D5 39 3A A3 19 D6-52 E0 BB A3 03 34 25 FB     .镎9:?諶嗷?4%?

000000D0  88 ED 1F 78 6A C8 D6 61-34 07 40 F4 6C 41 FB 43     堩.xj戎a4.@鬺

000000E0  17 E6 6A 98 67 F5 E4 B4-72 7D CA 1C DE 4E 04 ED    .鎗榞蹁磖}?轓.?

明文:

00000000  1D 8A 06 96 05 9C 48 4B-00 02 28 66 3A 3C 0F 38    .??淗K..(f:<.8

00000010  1F 40 00 84 10 1F 1D 8A-06 96 05 9C 48 4B 1E DD    .@.?..??淗K.?

00000020  7D BF 20 79 D3 46 C9 75-FC E0 E5 F7 9A 61 00 81    }?y覨蓇鬻歛.?

00000030  32 08 46 C2 9C 39 00 EA-00 00 00 01 00 00 00 00    2.F聹9.?.......

00000040  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00    ................

00000050  00 00 00 65 00 6B 00 00-00 00 00 01 00 00 32 08    ...e.k........2.

00000060  D2 48 C5 24 00 00 00 00-00 07 D0 00 02 00 00 00    襀?......?....

00000070  FF 00 01 00 00 00 69 01-00 1B 20 1F 6D 6D 6D 6D    .....i... .mmmm

00000080  6D 6D 6D 6D 6D 6D 6D 6D-6D 2E 74 78 74 1F 36 34    mmmmmmmmm.txt.64

00000090  20 D7 D6 BD DA 02 00 1C-00 00 00 00 00 00 00 00     字节...........

000000A0  00 00 00 00 DB 85 3C 49-00 00 00 00 00 00 00 00    ....蹍<I........

000000B0  00 00 00 00 03 00 29 00-01 00 20 40 BF C2 4C 76    ......)... @柯Lv

000000C0  45 52 CB 38 08 3A 62 85-56 64 AA 3D 87 7A E5 7F    ER?.:b匳d?噝?

000000D0  6E 41 50 54 FB 1B 1A 6F-12 83 1C 00 03 00 01 00    nAPT?.o.?.....

16D 6D 6D 6D6D 6D 6D 6D 6D 6D 6D 6D-6D 2E 74 78 74  请求发送的文件名

236 3420 D7 D6 BD   64字节  所传输文件的长度。

3数据包的传输

A:表示文件的发送方

B:表示文件的接收方

1.发送的第一个包

A->B  length=1027

                                03 0f 45 47 bf 8b   .k...z......EG..

0030   ed 20 bd 24 f0 f3 00 00 11 00 00 50 50 00 00 03    . .$.......PP...

0040   e8 01 0f 00 c0 2f 1b 00 00 00 00 00 00 00 00 00   ...../..........

0050   00 00 00 00 00 04 00 00 e2 02 00 00 f4 02 bc 00  ................

0060   c0 2f 1b 00 4c cb 12 00 9f 89 3e 4a 0a 01 0f 00   ./..L.....>J....

0070   00 00 00 00 0a 01 0f 00 f0 cb 12 00 00 00 00 00   ................

0080   f4 02 bc 00 60 cb 12 00 cf 89 3e 4a 0a 01 0f 00   ....`.....>J....

0090   00 00 00 00 0a 01 0f 00 88 cb 12 00 3c 95 3e 4a   ............<.>J

00a0   28 93 3e 4a 01 00 00 00 00 00 00 00 28 93 3e 4a   (.>J........(.>J

00b0   00 00 00 00 5c 04 00 00 20 db 12 00 70 88 4b 04   ..../... ...p.K.

00c0   b4 cb 12 00 24 87 d1 77 0a 01 0f 00 82 02 00 00   ....$..w........

00d0   01 00 00 00 00 00 00 00 28 93 3e 4a cd ab ba dc   ........(.>J....

00e0   00 00 00 00 f0 cb 12 00 28 93 3e 4a 1c cc 12 00   ........(.>J....

00f0   c9 8b d1 77 00 e0 fd 7f 1c cc 12 00 4a 88 d1 77   ...w........J..w

0100   dc cb 12 00 1a 88 d1 77 82 02 00 00 f0 0d 81 00   .......w........

0110   04 0e 81 00 14 00 00 00 01 00 00 00 00 00 00 00   ................

0120   00 00 00 00 10 00 00 00 00 00 00 00 0e 00 00 00   ................

0130   01 00 00 00 00 00 00 00 00 00 00 00 d0 cb 12 00   ................

0140   4f 00 00 00 00 00 00 00 77 04 d4 77 20 88 d1 77   O.......w..w ..w

0150   ff ff ff ff 1a 88 d1 77 8b b8 d1 77 00 00 00 00    .......w...w....

0160   28 93 3e 4a 0a 01 0f 00 82 02 00 00 01 00 00 00   (.>J............

0170   00 00 00 00 04 0e 81 00 01 00 00 00 f0 0d 81 00   ................

0180   74 80 16 00 87 02 00 00 4e e6 40 bb ac d0 12 00   t.......N.@.....

0190   18 3c fb 61 00 0a 04 00 82 02 00 00 02 00 00 00   .<.a............

01a0   00 00 00 00 30 d1 12 00 29 c0 f7 61 00 00 00 00   ....0...)..a....

01b0   00 00 00 00 a0 cc 12 00 cb c1 d6 77 60 80 16 00   ...........w`...

01c0   82 02 00 00 01 00 00 00 00 00 00 00 00 00 00 00   ................

01d0   e0 7c 7e 00 82 02 00 00 c4 cc 12 00 52 c8 d6 77   .|~.........R..w

01e0   60 80 16 00 82 02 00 00 01 00 00 00 00 00 00 00  ` ...............

01f0   48 cd 12 00 6e c8 d6 77 6e c8 d6 77 e0 cc 12 00   H...n..wn..w....

0200   90 c8 d6 77 14 01 03 00 82 02 00 00 01 00 00 00   ...w............

0210   00 00 00 00 01 00 00 00 0c cd 12 00 24 87 d1 77   ............$..w

0220   14 01 03 00 82 02 00 00 01 00 00 00 00 00 00 00   ................

0230   6e c8 d6 77 cd ab ba dc 00 00 00 00 48 cd 12 00   n..w........H...

0240   6e c8 d6 77 74 cd 12 00 c9 8b d1 77 00 e0 fd 7f   n..wt......w....

0250   74 cd 12 00 4a 88 d1 77 34 cd 12 00 1a 88 d1 77   t...J..w4......w

0260   82 02 00 00 6e c8 d6 77 10 00 00 00 14 00 00 00   ....n..w........

0270   c8 a1 cf fb 00 00 00 00 00 00 00 00 58 cd 12 00   ............X...

0280   cf a4 80 7c 0f 00 00 00 ef bf 80 7c 28 85 1e 06   ...|.......|(...

0290   70 cd 12 00 4f c0 80 7c 04 00 00 00 b0 fa ff ff   p...O..|........

02a0   00 00 00 00 28 d4 12 00 a0 cf 12 00 ac 2f fb 61   ....(......../.a

02b0   00 00 00 00 04 00 00 00 78 d9 12 00 10 00 00 00   ........x.......

02c0   28 d4 12 00 10 00 00 00 00 00 00 00 00 00 00 00   (...............

02d0   00 00 00 00 14 01 03 00 54 c9 c3 60 c4 cd 12 00   ........T..`....

02e0   e5 e8 d1 77 6e c8 d6 77 14 01 03 00 82 02 00 00   ...wn..w........

02f0   01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00   ................

0300   ae 6a ba 60 e0 cd 12 00 cf a4 80 7c 00 00 00 00   .j.`.......|....

0310   01 00 00 00 28 85 1e 06 f8 cd 12 00 4f c0 80 7c   ....(.......O..|

0320   01 00 00 00 f4 ff ff ff 00 00 00 00 40 d0 12 00   ............@...

0330   24 d0 12 00 41 30 fb 61 00 08 00 00 01 00 00 00   $...A0.a........

0340   4c d0 12 00 01 00 00 00 40 d0 12 00 00 00 00 00   L.......@.......

0350   49 6a ba 60 50 02 3c 00 6e c8 d6 77 00 00 00 00   Ij.`P.<.n..w....

0360   e0 cd 12 00 bc ce 12 00 a0 2d c3 60 00 00 00 00   .........-.`....

0370   64 ce 12 00 24 87 d1 77 14 01 03 00 82 02 00 00   d...$..w........

0380   01 00 00 00 00 00 00 00 49 6a ba 60 cd ab ba dc   ........Ij.`....

0390   00 00 00 00 a0 ce 12 00 49 6a ba 60 cc ce 12 00   ........Ij.`....

03a0   c9 8b d1 77 00 e0 fd 7f cc ce 12 00 4a 88 d1 77   ...w........J..w

03b0   8c ce 12 00 1a 88 d1 77 82 02 00 00 e0 7c 7e 00   .......w.....|~.

03c0   f4 7c 7e 00 14 00 00 00 01 00 00 00 00 00 00 00   .|~.............

03d0   00 00 00 00 10 00 00 00 00 00 00 00 ca 88 d1 77   ...............w

03e0   01 00 00 00 00 00 00 00 00 00 00 00 80 ce 12 00   ................

03f0   00 00 00 00 a4 cf 12 00 77 04 d4 77 20 88 d1 77   ........w..w ..w

0400   ff ff ff ff 1a 88 d1 77 8b b8 d1 77 00 00 00 00   .......w...w....

0410   49 6a ba 60 14 01 03 00 82 02 00 00 01 00 00 00   Ij.`............

0420   00 00 00 00 f4 7c 7e 00 01 00 00 00 60            .....|~.....`

03 0f 45 47 bf 8b   QQP2P协议的包头。

 50 50  QQ传输文件是发出的第一个数据包,该位置固定为 50 50 可以将该值作为特征码来判断是否是QQ传输文件的第一个包

返回的确认包

B->A

                                     03 10 51 1c e6 7f   ...z.....J..Q...

0030   ab a8 e4 d0 b6 7b 00 00 11 00 00 50 51 00 00 03   .....{.....PQ...

0040   e8                                                .

 50 51  对于标识为 50 50 的第一个文件传输的数据包的确认包的标识固定为 50 51 

2发送的第二个文件传输包

A->B     length= 0x13f

                                03 0f 45 47 bf 8b   .k...z.G....EG..

0030   ed 20 bd 24 f0 f3 00 00 11 00 01 52 52 00 38 b6   . .$.......RR.8.       

0040   0d 00 00 0e 84 bb a8 d0 c4 2e 6d 70 33 00 87 ac   .....花心.mp3...     

0050   84 a3 92 81 92 9e c1 02 00 00 00 00 00 03 0c 00   ................

0060   a0 87 92 87 ac 84 a3 92 81 92 9e c0 02 00 00 00   ................

0070   03 00 09 72 00 00 00 51 44 01 01 05 00 02 0f 00   ...r...QD.......

0080   a3 84 91 84 af 93 98 bd 91 99 9e a4 89 80 95 01   ................

0090   00 00 00 03 03 0d 00 a1 86 93 86 ad 85 a1 87 90   ................

00a0   a6 8b 82 97 02 00 00 00 11 00 03 0c 00 a0 87 92   ................

00b0   87 ac 84 a3 92 81 92 9e c2 02 00 00 00 00 00 03   ................

00c0   0c 00 a0 87 92 87 ac 84 a3 92 81 92 9e c1 02 00   ................

00d0   00 00 03 00 03 0c 00 a0 87 92 87 ac 84 a3 92 81   ................

00e0   92 9e c0 02 00 00 00 00 00 09 72 00 00 00 51 44   ..........r...QD

00f0   01 01 05 00 02 0f 00 a3 84 91 84 af 93 98 bd 91   ................

0100   99 9e a4 89 80 95 01 00 00 00 05 03 0d 00 a1 86   ................

0110   93 86 ad 85 a1 87 90 a6 8b 82 97 02 00 00 00 10   ................

0120   00 03 0c 00 a0 87 92 87 ac 84 a3 92 81 92 9e c2   ................

0130   02 00 00 00 06 00 03 0c 00 a0 87 92 87 ac 84 a3   ................

0140   92 81 92 9e c1 63 99 f1 39 13 45 0a 1b f4 32 21   .....c..9.E...2!

0150   3e 6d 8e 33 70 87 e3 7b 4d 7c a6 8a db 6a d8 d1    >m.3p..{M|...j..

0160   f9 21 a3 8f 55 00 00 03 e8                        .!..U....

a. 52 52  文件信息包的标识。

b. 00 38 b6 0d  所要传输的文件的长度 

c. 00 00 0e 84  需要0xe84个数据包,传完整个文件。

d. bb a8 d0 c4 2e 6d 70 33 所要传输的文件的名称。

B->A  收到数据后的确认包

                                 03 10 51 1f e5 7c   ...z.....I..Q..|

0030   a8 ab e7 d3 b5 78 00 00 11 00 01 52 53 00 00 00   .....x.....RS...

0040   00  

52 53  第二个数据包的确认包

3)正式发送文件内容的信息

A->B

                                03 0f 45 47 bf 8b   .k...z..a...EG..

0030   ed 20 bd 24 f0 f3 00 00 11 00 02 54 54 00 00 00  . .$.......TT...

0040   00 ff fb 90 6c 00 0f f0 00 00 00 00 00 00 00 00   ....l...........

0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0100   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0150   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01e0   00 00 ff fb 92 6c be 8f f0 00 00 00 00 00 00 00   .....l..........

01f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0230   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0260   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0270   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0280   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0290   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

02c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0300   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0310   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0320   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0330   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

0340   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0350   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0360   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0370   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0380   00 00 00 00 ff fb 92 6c ff 8f f0 00 00 00 00 00   .......l........

0390   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0400   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0410   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0420   00 00 00 00 00 00 00 00 00                        .........

54 54  发送文件内容包的标识 

0000   所发送文件内容包的序号

ff fb 90 6c 00 0f f0 00 00 00 00 00 00 00 00 以及之后的内容为文件内容的数据。

B->A  确认包

                                 03 10 51 1f e5 7c   ...z...#....Q..|

0030   a8 ab e7 d3 b5 78 00 00 11 00 02 54 55 00 00 00   .....x.....TU...

0040   00 7f ff ff ff                                    .....

54 55  确认包的标识。

多媒体传输中的P2P数据包分析

该部分内容翁越龙的《QQ逆向工程研究》一文中有了很详细的分析。

第四部分  QQ中的TCP上的数据分析

一. TCP协议上的文件传输

 在这里SR发送文件,文件的名称是TryaaaaaaaaaaaaaQQ.TXT, 文件的长度是0x15e0,文件的内容是全部是二进制的 00

1.   S---->R发送传输文件的请求包,文件信息数据包

                       04 11 03 01 58 00 03 7e f0 05   ...Q......X..~..

0040   9c 48 4b 03 2f 00 8c 20 f2 00 00 00 00 83 7c d8   .HK./.. ......|.

0050   be 1c 00 01 38 38 01 00 00 00 11 00 01 52 00 00   ....88.......R..

0060   52 00 00 15 e0 00 00 00 00 54 72 79 61 61 61 61   R........Tryaaaa

0070   61 61 61 61 61 61 61 61 61 51 51 2e 54 58 54 00   aaaaaaaaaQQ.TXT.

0080   00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00   .H..............

0090   00 00 00 00 00 ff 00 01 00 00 00 00 00 00 00 00   ................

00a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00c0   00 70 03 00 00 51 00 00 00 3d 01 00 00 4f 01 00   .p...Q...=...O..

00d0   00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00   .X..............

00e0   00 40 b7 18 10 00 00 00 00 00 00 00 00 00 00 00   .@..............

00f0   00 00 00 00 00 40 b7 18 10 00 00 00 00 00 00 00   .....@..........

0100   00 00 00 00 00 00 00 00 00 ff ff ff ff 5c 8b 39   ............./.9

0110   04 51 00 00 00 90 00 00 00 7c 85 59 08 6c ac 59   .Q.......|.Y.l.Y

0120   08 70 0c 0e 00 40 82 59 08 cc ed 59 08 00 00 00   .p...@.Y...Y....

0130   00 00 00 00 00 d8 ed 59 08 00 00 00 00 00 00 00   .......Y........

0140   00 e4 ed 59 08 00 00 00 00 00 00 00 00 f0 ed 59   ...Y...........Y

0150   08 40 00 00 00 51 00 00 00 fc ed 59 08 00 00 00   .@...Q.....Y....

0160   00 00 00 00 00 08 ee 59 08 fe 27 99 51 98 e5 59   .......Y..'.Q..Y

0170   90 06 7f ff 91 68 dd 0e 60 77 69 30 8d dd 51 fc   .....h..`wi0..Q.

0180   12 0b b9 85 37 44 45 36 1c 00 00 27 10 03         ....7DE6...'..

04   QQ数据包头的表示,用来表示该数据包是QQTCP协议上的面向连接的数据包

11 03  发送方的版本

7e f0  包的序号。

059c 48 4b   发送方的QQ

83 7c  在传输同一个文件时,各个TCP数据包中,该值是不变的,作用是当同时传输多个文件时,彼此之间加以区分。(传输相同文件时,不同数据包,相同偏移时,值相同)

01 38 38 01 00 00 00 11 00 01 52 00 00 传输不同时,这些值相同,

00 00 15 e0 文件长度

54 72 79 61 61 61 6161 61 61 61 61 61 61 61 61 51 51 2e 54 58 54   要发送的文件的名称

2. R------>S 发回的数据包

                         04 11 03 00 2f 00 03 00 04 05   U..3....../.....

0040   9c 48 4b 00 00 00 bc 67 46 07 20 00 00 83 7c 6d  .HK....gF. ...|m

0050   f2 2d 49 00 0f 0f 00 00 00 00 20 00 02 00 00 00   .-I....... .....

0060   00 00 00 00 03                                    .....

                        04 11 03 00 2f 00 03 00 05 05   U.dK....../.....

0040   9c 48 4b ee 49 07 00 00 00 00 20 00 00 83 7c 9d   .HK.I..... ...|.

0050   1d 31 6a 00 0f 0f 00 00 00 00 20 00 03 00 00 00  .1j....... .....

0060   00 00 00 00 03                                    .....

                        04 11 03 00 30 00 03 00 06 05   U.U(......0.....

0040   9c 48 4b 00 00 00 00 00 00 00 00 00 00 83 7c 31   .HK...........|1

0050   2f 2f 8f 00 10 10 00 00 00 00 11 00 01 52 00 00   //...........R..

0060   53 00 00 00 00 03                                 S.....

04   QQ数据包头的表示,用来表示该数据包是QQTCP协议上的面向连接的数据包

11 03   发送方的版本

00 06 包的序号,不是从00 开始的

059c 48 4b  发送方的QQ

83 7c   固定值

03  数据包结束标志

这些包中应该包括一些协商的数据。

3. S------>R 发送正式的文件内容

第一个数据包,有QQ包头

                        04 11 03 08 20 00 03 7e f1 05   .Q.g...... ..~..

0040   9c 48 4b 51 44 01 01 05 00 02 0f 00 00 83 7c e0   .HKQD.........|.

0050   01 bc 98 08 00 24 27 00 00 00 11 00 02 56 00 00   .....$'......V..

0060   56 00 00 15 e0 00 00 00 00 00 00 00 00 00 00 00   V...............

0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0100   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0150   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0230   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0260   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0270   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0280   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0290   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0300   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0310   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0320   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0330   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0340   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0350   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0360   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0370   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0380   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0390   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0400   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0410   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0420   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0430   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0440   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0450   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0460   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0470   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0480   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0490   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0500   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0510   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0520   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0530   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0540   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0550   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0560   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0570   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0580   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0590   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05e0   00 00 00 00 00 00 00 00 00 00                     ..........

7e f1   包的序号

00 00 15 e0 文件的长度

00 00 00 00 00 00 00 从这里开始的数据是文件的内容

第二个数据包,没有QQ包头,全部是数据,这也是TCP传输的一个特点

                         00 00 00 00 00 00 00 00 00 00   .Q{.............

0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0100   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0150   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

01f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0230   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0260   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0270   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0280   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0290   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02a0   00 03                                             ..

03 结束符

第三个数据包,有QQ包头

                        04 11 03 08 20 00 03 7e f2 05   .Q........ ..~..

0040   9c 48 4b 51 44 01 01 05 00 02 0f 00 00 83 7c ff   .HKQD.........|.

0050   b6 bb e5 08 00 00 00 00 00 00 00 00 00 00 00 00   ................

0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

00f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0100   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0150   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

01f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0230   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0260   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0270   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0280   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0290   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

02f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0300   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0310   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0320   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0330   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0340   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0350   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0360   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0370   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0380   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0390   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

03f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0400   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0410   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0420   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0430   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0440   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0450   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0460   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0470   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0480   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0490   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

04f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0500   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0510   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0520   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0530   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0540   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0550   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0560   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0570   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0580   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0590   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

05e0   00 00 00 00 00 00 00 00 00 00                     ..........

00 00 00 00 00 00  从这里开始是文件中的数据,

在正式传输文件的数据时,第一数据包带QQ包头,第二个是不带QQ头的纯文件数据,但在数据包的结尾有03标识符,标识包结束;第三个数据包又带QQ包头,以此类推直到文件数据全部传输完毕。

第五部分 备注

. QQ消息的指令集

0x0000

0x0001  注销登录

0x0002  心跳信息

0x0003  register new id2

0x0004  更新用户信息

0x0005  搜索用户

0x0006  获取用户信息,个人信息

0x0009  不需认证方式添加好友

0x000a  删除好友

0x000b  需要认证的方式添加好友

0x000d  设置隐身、示忙等状态

0x0011  register new id1

0x0012  确认收到系统消息

0x0016  发送消息

0x0017  收到消息(服务器发起)版本号部分是01 00

0x001a  未知作用。

0x001c  在对方好友列表上删除自己

0x001d  未知作用。

0x0022  登录

0x0026  获取好友清单

0x0027  获取在线好友

0x0029  cell phone 2

0x0030  群操作指令

0x003c 好友文件夹的名称

0x003e 好友列表,好友的QQ号,4字节、头像标识符、好友的昵称

0x0057 CsCmdCryptKey

0x005c 个人级别情况,如级数,活跃天数

0x0062 请求登录令牌 未加密

0x0065

0x0067

0x0072

0x0080  收到系统消息(服务器发起)

0x0081  收到好友状态改变消息(服务器发起)

0x00a6 天气预报

0x00a9 

0x00aa

0x00b8

0x00ba 请求登录令牌

0x00be 

0x00c6

0x00c9

0x00da

0x00d4 QQ消息,以<text>为标识

0x00d8 关于个人中心

0x00db

0x00dd 密码验证

接收到的消息类型

00 09 普通消息
00 20 群消息
00 21 加入群通知
00 22 被从群删除通知
00 23 请求批准加入群通知
00 24 加入群请求批准通知
00 25 加入群请求拒绝通知
00 26 创建群通知
00 30 系统通知消息
        文件传送通知

关于QQTM

    最新版是2007B1,我们QQB3版以前版本的加密方式相同,以前的解密程序已经可以支持其解密。

. QQ的包头标识

1.  02 一般数据包

2.  03 基于UDP的协议的P2P协议传输

3.  00 还不清楚其作用

4.  04 基于TCP协议的传输

关于QQ的版本信息

公开版本

内部版本

版本号

宏定义

注释

QQ2007 Beta3 

0x1051

QQ_VER_2007_B3_1051

QQ 2007 B3

QQ2007 7.0 Beta3

7.0.316.203

0x1053

QQ_VER_2007_B3_1053

B3升级版

QQ2007 Beta4

0x1103

QQ_VER_2007_B4_1103

QQ 2007 B4

QQ2007 Beta4

7.0.372.204

0x1105

QQ_VER_2007_B4_1105

B4升级版

QQ2007 正式版

7.0.439.400

0x111d

QQ_VER_2007_STANDARD_111d

QQ2007正式版

QQ2007II beta1

7.1.518.201

0x1133

QQ_VER_2007II_B1_1133

QQ2007II B1

.更新情况

更新时间

更新内容

更新原因

20071025

对新版本号的支持,增加对cmd 0xdd接收包的解密支持

QQ版本升级

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值