QQ2013协议分析(解密篇)

版本信息:QQ2013beta2

测试QQ:2632949572

QQ密码两次md5所得密钥(MD5(MD5(QQ密码)+0x00000000+QQ号码)):47 D5 0A 0E 5E AD D1 BC F3 6E C3 48 B8 BD B6 00

下面,我们便来一起解析QQ登录得到会话密钥的方法。

QQ协议首选的传输层协议是UDP,如果UDP不可用,那么会再尝试使用TCP进行传输。UDP使用的端口是8000(0x1F40),TCP使用的端口是443(0x1BB)。这里我们只分析udp。

QQ2013登录过程得到会话密钥需要分析命令字为0x0826和0x0828的报文,解密过程使用16轮TEA算法,过程如下:

1、得到客户端->服务器0x0826报文中的密钥A;
2、用密钥A解密1中报文的密文部分(紧跟着密钥A,一直到结束标志0x03前);
3、用QQ号码与QQ密码一起产生密钥B(MD5(MD5(QQ密码)+QQ号码));
4、用密钥B解密2中得到的明文中的120字节,所得到的明文后16字节为密钥C;
5、用密钥C解密服务器->客户端0x0826报文中的密文数据;
6、在步骤5所得明文中取得密钥D;
7、用密钥D解密服务器->客户端0x0828报文中的密文,所得明文第26字节到第41字节
即为会话密钥。

至此,后面的报文都用会话密钥解密。

具体分析包:(此处使用QQAnalyzer工具抓包)

//我们先以包1为例,解析QQ数据构成

0x02标识    版本号       命令字          序号              QQ号             数据            0x03标识

 1字节          2字节         2字节          2字节            4字节             不定              1字节                  

[NO.1 2013-05-02 19:02:34 397 SEND 115字节]
02                      //标识

32 41                //版本号

08 25                //命令字

36 60                //序号

9C EF 9F 44    //QQ号,转换为10进制为2632949572

//从下面开始为实际数据

03 00 00 00 01 01 01 00 00 66 2A 00 00 00 00               //15字节

90 8B 61 FC 82 DC 3E 3C 87 C5 DF 85 63 49 4A 9B    //临时密钥

//从下面开始为密文

15 3E 7B 74 13 D9 78 56 81 CD 4F F9 4A F8 4D 97    

29 39 C0 C7 31 37 CA FB 1E 6C 29 75 98 DF 3B 57

56 F1 40 68 5A 68 5C 83 5A 60 AA C3 6A C8 F5 2B

C8 F1 42 43 88 92 3E 5B 4A 2A 52 DF A6 5C A3 1A

D8 87 20 8B DE AB 52 27

//密文结束

//[  ]内为解密后的明文

[
00 18 00 16 00 01 00 00 04 17 00 00 00 01 00 00
13 C9 9C EF 9F 44 00 00 00 00 01 14 00 1D 01 02
00 19 03 3A 04 4B 55 9B 41 51 6F 63 01 DC 30 13
22 BD A3 A2 5D 02 A4 66 B3 D7 72
]

//实际数据结束

03                      //标识
//以下发送包同上述方法,这里我们只讲得到会话密钥的过程,故而只分析命令字为0x0826与0x0828的包。
[NO.2 2013-05-02 19:02:34 421 RECEIVE 111字节]
02 32 41 08 25 36 60 9C EF 9F 44 00 00 00 E1 47
13 E5 CA 52 48 DF D8 B4 80 47 CD A9 4E 95 7E FF
3D 33 18 49 DE 6A 22 98 49 33 C2 7E 56 D2 31 1F
0E 03 32 DC 0F 6F 67 25 FD 95 EF 71 83 D0 C7 62
EE 5E C5 43 6C 1D E6 94 08 17 EF 4A 9B 89 15 01
32 7E 78 6C 0A 48 CE C3 58 FC 52 EE E1 36 18 DE
49 98 CA E6 92 A9 0E 0A 7D 4B D4 FE 37 28 03

[NO.3 2013-05-02 19:02:34 430 SEND 563字节]
02 32 41 08 26 13 CC 9C EF 9F 44 03 00 00 00 01
01 01 00 00 66 2A 00 00 00 00

7E C4 A2 A9 A5 AA 1A 00 9D 0E 51 71 47 57 E4 B4    //临时密钥

//密文开始

E1 E6 75 17 1C 4C
8A F6 7B D5 C9 C2 C0 C2 6A 1D 96 35 F7 B9 62 7E
7E 8B 65 7D D5 27 1D FA 29 AA 8B EE 7A 35 63 A2
84 85 E4 FD E8 B0 88 73 3F CB 13 5A 0C DA 48 E2
45 8A 5B D3 BC D3 A9 44 AE 17 3F C8 CE 09 18 3A
E5 06 C2 44 A5 B0 E9 D9 26 1B 62 74 B9 57 87 65
73 3B 1A EC 00 72 84 EC 43 A1 28 60 A7 12 AC 8C
AE 49 8E 9A 44 D2 DF 7C 5C BF 86 5F 9B E7 3A 7A
BA 0A 8A 70 58 B2 73 F9 D6 4E 1A AB 3F 30 8F B4
25 D0 2F 08 B6 E2 53 B1 26 49 2D 37 E9 BF 9B 1A
46 48 1C 28 C7 67 87 A9 39 D1 81 D6 97 94 A2 05
E9 82 2E A5 CE 9B DF E1 E9 25 FF 17 57 CA 34 D7
71 07 99 8B C6 3C 5B E1 FC 5C 85 F2 63 2A BF 77
C3 3A FD D3 7A FC B1 30 80 45 1D 34 90 82 1B 83
93 BF 4C 87 04 59 0B BD CE 70 1B 52 44 10 91 A7
F3 A0 70 24 5E 08 84 CD 95 EA 0B B5 58 54 84 2D
73 AB 7C A8 AD 95 5F CF 62 8E 52 AB 3E D6 44 3F
B4 B9 11 D0 60 0E 8D EA C2 D9 70 33 8A 9E B9 A8
7F 53 85 12 D0 C2 70 89 BD 36 93 EE 94 99 22 98
9D 7C 31 B9 97 E8 02 7A 04 A6 EA 5E 60 73 1F B0
77 63 70 60 F4 15 7C 77 A8 B5 1E 8D 2D EC 2D 97
0E 57 DC E9 10 5A 36 45 6F D5 D0 EA 60 98 62 EC
33 00 6F A9 FF 6C E3 2F 4F 3D 6B 54 1C 32 02 0A
C9 FD B4 08 BB 53 CF 4B D0 F1 76 6D E5 77 0B 35
DD 65 17 73 83 08 B5 38 62 E6 60 9B DF 94 EA 68
51 A9 9B B1 D8 17 DD 3D 14 BB B2 77 25 E2 24 D4
04 63 D6 F5 ED 5C 48 6A 4C 7F F7 BE F5 F7 0A 2C
BB 7C 3B 19 33 7C 29 0F 71 29 2A F1 D5 49 F3 3B
86 B1 C2 CE 44 82 97 95 0F B8 46 9D F9 72 9F 97
4D 24 02 57 4E 97 71 18 C0 9B 7F 90 44 13 8A F2
DF FE F1 D9 88

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值