QQ即时通信协议分析
软件名称 | |
软件版本 | 默认版本为2007Bate3 |
分析平台 | Win2000 + sp2 |
分析工具 | Wireshark0.99.3,allydbg |
分析人员 |
|
分析时间 | 2007.07 |
第一部分 登录
一. 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?..
(1)02 标识QQ数据包的开始位置
(2)10 51 2007B3版的版本标识
(3)00 91 QQ数据包的类型,即cmd
(4)00 00 随机序列号,标志包的唯一性
(5)05 9C 48 4B QQ号,这里的QQ号正常的顺序是0x059c484b转换成十进制是94128203
(6)83 A2 11 CE 2E35 D9 30 15 96 B7 DC 86 2A 86 0B 密钥,该密钥用来加密数据包中之后的数据
(7)74 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 被加密的数据部分。
(8)03 数据包的结束标志
解密后的数据是:
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??..
(1)10 51 00 91 00 00 包头,具体内容参见 数据包(1)
(2)9C 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
(1)10 51 00 BA 58 AA 05 9C 48 4B 包头
(2)E6 6A CF 7F C429 CC 1D 6E E0 CB FA 8D A6 54 0D 密钥
(3)D2 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
(1)10 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
(1)03 00 05 00 数据包(5)中的数据解密后,也出现了该数值。
(2)00 20 令牌的长度
(3)04 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 ?.............
(1)10 51 00 DD 5C BF 05 9C 48 4B 数据包头
(2)00 E2 7D 18 7199 75 13 14 31 6E 2B 0C CE 49 C5 密钥,后面的加密数据是由该密钥加密得到的。
(3)DE 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 令牌长度
(3). 04 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)发来的,此刻,客户端再把该令牌发回服务端。
(4)00 20 密码验证串长度
(5)81 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 密码验证串
(6)00 14 数据段的长度
(7)93 6C 8F 73 DA 15 FE 70 A7 BE 48 0A D6 B4 79 26
6C FC 56 A9 数据段的内容,作用未知
(8)00 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)
(10)CA BD CE AA A1 BE 55 44 50 B5 C7 C2 BC B7 BD CA BD A1 BF 0D 0A 中文
(11)B7 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蟙
(1)10 51 00 DD 5C BF 数据包头
(2)DF 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......?...
(1)00 97 数据包的长度
(2)00 38 长度,该值固定
(3)82 DC F12B BA 52 A2 E8 86 8A A9 DC B3 30 1C 85 34 50 82…………
该数据用于添加到C->S 22包中的数据部分。由服务器生成,值不固定
(4)59 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鬑..
(1)10 51 00 22 5F DB 05 9C 48 4B 数据包头
(2)00 38 58 75 2F………… 是由数据包(8)解密后的一段数据。
(3)FA 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,在上面的数据块中略去。
(1)00 20 数据块的长度
(2)C4 30 C4 5B 96 4D 97 3E F5 C1 9A 2D………… 该数据块长度固定,内容不固定
(3)57 6F 8F 1B AD A6 F8 B6 72 2E F0 0E 41 CF 5A 3B 该值为以密码的两次MD5值为密钥,对空字符进行加密后的密文。
(4)73 19 5B E2 0D 81 E0 BE AE DF 60 39 B8 44 6B E9 该值对于所有用户来说为定值,
(5)0A 登录方式,0A表示上线,28表示隐身
(6)20 数据块的长度
(7)04 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(S è 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
(1)10 51 00 22 1C 0C QQ包头
(2)25 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 QNl缐g?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 ...........
(1)00 表示成功登录
(2)37 77 4E 67 46 48 70 65 44 62 51 70 49 65 7944 sessionKey,在特定时间段里,多次连接,该值固定。
(3)05 9C 48 4B QQ号
(4)D2 48 C5 24 客户端的IP地址
(5)0F A0 客户端的端口号d 4000
(6)7F 00 00 01 ip地址:127.0.0.1
(7)1F 40 端口 d 8000
(8)46 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 ?
(1)05 9C 48 4B 发送消息者的QQ号
(2)04 BE 1D 65 接收消息者的QQ号 79568229
(3)10 51 发送方客户端的版本号,这里表示2007B3
(4)CF BC 99 B5 50 53-59 6F 66 32 9D BB 6B 1E3F 3F 接收方QQ号+session Key的MD5 值
(5)00 0B 固定值
(6)48 31 消息序列
(7)46 B8-12 99 发送时间,自1970年1月1日起的秒数
(8)00 06 头像
(9)00 00 00 01 新版的标识,(这里的新版不是指2007B3版),可能在于区分后边是否带有字体信息
(10)01 00 80 00 相对以前的版本,这个段的数据发生了变化,应该四数据包的序号
(11)01 消息类型。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
(14)00-00 00 颜色 表示黑色;FF 00 00 表示红色
(15)00 86 字符编码,0x86,GB2312。0x00,英文字符
(16)02 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 ?......?宋体.
(1)04 BE 1D 65 发送者的QQ号
(2)05 9C 48 4B 接收者的QQ号
(3)00 0A D1 05 消息的序列号
(4)3A 3C 0F 37 发送者的IP
(5)1F 40 发送者的端口号
(6)00 84 接收包的类型
(7)10 1F 发送者的QQ版本号
(8)00 153C 14 06 A3 8C E2 54 D1-86 B1 27 10 82 24 发送方QQ号+session Key的MD5 值。
(9)00 0B 固定值
(10)7B C7 序列号
(11)46 B8 11 C6 发送时间
(12)59 头像
(13)01 旧版是00,新版是01
(14)01 消息类型。0x01,普通消息。0x02,自动回复消息
(15)D6 D0 CE E7 B6 BC CA C7 C1 AC D0 F8 CF C2 C0-B4 20 34 B5 E3 CF C2 B0 E0 20 消息的内容
(16)00 00 00 颜色
(17)86 字符集
(18)02 CB CE CC E5 0D 字体
注:一般消息的接收数据包中,QQ数据包头的版本号是01 00,表明是由服务器发送来的
三.Cmd 26数据包 好友列表数据包
第三部分 QQ中的P2P协议
一. 概述
QQ即时通信中点对点协议的有以下应用,一个是QQ的影视频传输,另一个是QQ的文件传输。
QQ的P2P协议包头如下:
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 进制QQnumber是120804760
~运算符表示去反。
二. 文件传输
(一)使用UDP底层协议,实现的文件传输
1.概述
(1)QQ2007B3版的文件传输可以采取UDP协议作为其底层协议,所采用的端口不固定。数据采取明文传输,但文件传输请求的包是密文的“Cmd 17数据包”,通过标准的解密工具可以解出明文。
(2).文件传输的数据包采用QQ的P2P数据包进行数据传输,在文件传输的数据包中包含完整的P2P包头,详细内容见上文。
(3).由于是明文传输,无需解密就可以的到所传输文件的文件名称、文件长度、和文件内容。
2. 文件传输请求数据包分析
该包是标准通过服务器转发的02数据包,而非QQ的P2P数据包。作用是发送一个要求传输文件的请求。
上文中提到的解密程序支持该密文的解密
密钥:
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.?.....
(1). 6D 6D 6D 6D6D 6D 6D 6D 6D 6D 6D 6D-6D 2E 74 78 74 请求发送的文件名
(2). 36 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 QQ的P2P协议的包头。
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协议上的文件传输
在这里S向R发送文件,文件的名称是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数据包头的表示,用来表示该数据包是QQ的TCP协议上的面向连接的数据包
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数据包头的表示,用来表示该数据包是QQ的TCP协议上的面向连接的数据包
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 系统通知消息
文件传送通知
三. 关于QQ的TM版
最新版是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版 |
|
|
|
|
|
六.更新情况
更新时间 | 更新内容 | 更新原因 |
2007年10月25日 | 对新版本号的支持,增加对cmd 0xdd接收包的解密支持 | QQ版本升级 |