首页 技术 正文
技术 2022年11月18日
0 收藏 494 点赞 2,942 浏览 11322 个字

QQ 协议分析:获取各类登录会话密钥

我们知道QQ的一些会话密钥是在登录过程中生成的,尤其是Session Key,有了它便可以解密出聊天文本内容。本文主要是了解一下QQ的加密机制,首先是用嗅探工具Wireshark 捕获本地发至8000端口的UDP数据包,然后使用 QQCrypter 工具对各类文本进行加解密分析。

帐号资料

QQ号码(HEX):739317986     2C 11 18 E2

QQ密码 MD5 一次密文:D1 C2 DC FC BF D4 1C E1 10 3A 25 47 5B 64 F7 A5

QQ密码 MD5 二次密文:17 05 FB D8 1D 0D B4 37 79 7E 55 75 6C B8 E8 D2

IP地址(HEX):192.168.1.101  C0 A8 01 65

数据包分析

密钥A:

02            // 命令类别

1C 27        // QQ2010 Beta3版本号

00 91

46 60

2C 11 18 E2       // QQ号码

02 00 00 00 01 01 01 00 00 64 00

3E 12 2D 44 39 61 C5 34 80 7E D1 26 AD 30 50 29        //密钥A

6B 1C 4B 2C 30 0B 4C 56 90 14 32 56 F3 AF 69 20        // 以下蓝色内容为密文

62 C0 80 80 DE 26 CE EA E6 E6 8C BE F5 8A E7 45

87 F1 BD AC 59 0E 87 47 1D FE 4E 46 02 51 5D 00

03

用TEA解密如下:

00 01 00 00 08 04 01 E0 00 00 03 20 00 00 00 01

00 00 0B 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

密钥B:

02

1C 27

00 DD

16 B2

2C 11 18 E2

02 00 00 00 01 01 01 00 00 64 00

33 BA 7C E2 A1 C2 B4 8E DC 8D 19 49 2E 54 D6 23     //密钥B

// 以下蓝色内容为密文

93 29 E2 EA 3E 02 DE D2 2D 7C 6D 70 DB 25 F5 74

57 4B 03 8A B9 DF EF 0D A3 EF 49 3C A8 F6 7D FE FD 1D 22 82 27 F2 39 03 91 95 02 C9 C2 FB 8E 5D EA 8F 0C 54 F8 74 D0 84 53 A3 62 58 71 D8 12 AA 06 DA C4 9F FF AD 1D 57 23 09 0C AF 6D A9 2E 44 9E 7C CD E6 85 E3 73 27 76 98 29 32 1E 8F 50 66 F6 3C D7 F4 BD A6 C4 07 DF DE 7E A4 68 B5 2A ED 7E 81 27 C2 1D 11 7A 14 28 1D 38 FF 89 9B 74 FF 96 62 96 E9 E1 B1 B3 85 95 F4 16 32 14 31 96 91 49 E5 E8 14 27 2C 52 96 16 0C 63 4C 0B B0 E6 18 43 A6 0B 3B 87 8C 98 C2 A8 7F 2E EC A7 9E 94 B2 00 43 AC D4 B1 68 55 A4 55 9B 62 35 75 93 AE 5F A7 32 67 6C 43 66 0E 4A 06 B6 87 72 1E 0A B7 B3 04 D8 AB 80 0E 5F AA A1 3A 24 1E B5 58 F1 70 EF 41 58 2F 77 50 85 97 9E B2 0A DF C9 16 AC 64 50 5F F7 B7 66 67 CE 83 74 0B 68 69 A8 37 51 37 F5 79 C2 9B E4 E6 CA 77 AC 02 BE 34 9B 8C B4 93 EE DE BC 4F 46 21 BA 72 5A 6B 23 7C 2C 11 E0 6A 02 D2 5E E7 BC FD 0E FB 52 16 93 B6 B0 C2 52 B2 42 58 93 27 BF 19 93 C1 F4 7D BB 48 48 37 91 81 00 AE 51 D4 15 22 4C 26 28 4E 50 50 F2 5E A3 B2 04 1A 17 FA 91 BE 3D 7D 82 70 71 43 4B 5C 44 AB D4 BF 65 D1 DC AB 5D E0 68 36 35 1D 93 88 6E C5 85 02 57 68 87 71 0F 2A 6F 4B 48 0D E1 AE 95 99 A6 57 49 A6 D5 86 04 42 87 F3 C6 23 9A 42 A3 52 23 9D B9 67 92 A7 1B 1A 7C 56 98 9B B3 A9 A3 25 5E 2B 74 A8 78 DC C5 11 40 A3 13 2D ED 88 4F 11 2B 59 D6 EC 13 61 BA 57 EB 6F 4C 67 95 DA EA BA 0C FA 3E 2B 86 3A D8 84 05 7F 3B 27 A6 94 49 CA F4 23 6D C0 AD 97 08 E2 C7 15 27 0B 8E 10 CD 02 1A 63 13 15 BF 4A B3 66 87 AC 2A 42 09 D5 4A DD F8 1C 0C B0 0A DD 09 F5 7F 28 60 61 55 E7 25 73 A4 BC FB 9C 5E 87 C7 CD 8A A9 46 9A 14 FD B1 03 F5 AA 2F 9C 84 32 52 A6 70 D5 FC 62 DA DA 74 B3 67 3F 84 C9 67 25 A8 8B 7E 93 72 41 8F 0C C4 34 5C 10 9F 5D 9D C2 F4 93 A0 D9 61 45 C1 B7 54 A3 76 F7 31 D8 A1 CE 8E 94 1D C7 B4 C4 49 EA BD 7C 78 77 1E CF 5D CE 5E 81 4F EC 64 AA 6A B5 E2 41 BA 4E 00 D6 D7 7F B9 96 8F

03

用密钥B (33 BA 7C E2 A1 C2 B4 8E DC 8D 19 49 2E 54 D6 23)经TEA算法解密,内容如下:

00 DE 00 01 00 00 08 04 01 E0

00 00 03 20 00 00 00 01 00 00 0B 17

00 38

53 5E 98 F6 D7 43 46 75 8F 78 8A 60 FB 8E D7 4A

5C 4A 4C 42 A2 A2 C1 37 8D 21 55 CC B6 26 5F 02

AE 1C 87 79 23 9B FD CE 96 28 82 E0 AB 08 28 FA

C3 9C B0 7C 76 5C F5 F5

00 78    //0x78表示十进制数值 120

D5 FE 11 59 59 04 90 82 BA 36 50 54 4D 49 44 B8    //120个字节的开始块

22 72 00 BA 2D F3 5C 4C 3F B6 45 B1 D3 16 1C A9 4D 12 33 B0 79 11 BB 68 79 6E 2E 1B 1C E1 C9 F8 19 4B F1 35 AA EB 62 F2 D7 77 48 70 1D B4 40 CB 85 F8 74 15 5E 6C 32 9F 07 E4 B0 2A 61 35 4B 54 CC 85 F4 EA 6C 5A 42 F8 DB 18 A3 8F 9B 42 AD 5E 9A 5E FE 89 4C 18 71 2A 33 6A E9 D1 9F CE 0F DA 99 ED 65 F8 F6 E2 0D 66 //120个字节的结束块

00 14 82 FE 87 6D 6D 10 52 50 50 CD 61 98 54 F7 2F 82 EE 6A EB D5 01 77 2E 01 7F 5D 41 8F 00 10 8D CD 83 D5 BB B4 1F 4C CA 15 5C 38 D4 69 F1 30 02 66 45 A3 96 00 10 49 1F 22 31 08 12 D4 98 70 1F A3 63 9F 4B 56 AB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

密钥C和D:

我们用QQ密码 MD5 二次密文(17 05 FB D8 1D 0D B4 37 79 7E 55 75 6C B8 E8 D2)作为密钥,对上面的120个字节 数据块作解密处理,可以得到密文:

52 40 0C 93 00 01 2C 11 18 E2 00 00 03 20 00 00

00 01 00 00 0B 17 00 00 00

D1 C2 DC FC BF D4 1C E1 10 3A 25 47 5B 64 F7 A5         //这个16位的数据正好是QQ密码

//经过MD5一次加密的密文

4C 75 25 59 00 00 00 00 00 00 00 00 00 00 00 00

00 3A FF 40 28 00 00 00 00 00 00 00 00 00 10

08 97 8A 39 E8 96 72 49 AC 26 E6 8B 63 E4 D7 44         //这个16位的数据是密钥 C

27 1E 92 DE F4 F4 9A 68 B2 E4 8D 84 BC EC 42 41     //这个16位的数据是密钥 D

密钥E和F:

 

02

1C 27

00 DD 16 B2 2C 11 18 E2 00 00 00

//以下为密文部分

68 1C F0 8E A0 98 20 AB B6 85 68 CE 28 BB 76 6D E1 0A 7C 64 0B D7 96 1D A0 F2 FA 09 0C 65 5E 7D FF B7 50 DB 78 12 5D 0A 6A 80 19 F5 B8 32 92 A8 DC 1E 00 F0 E0 01 02 8E 64 01 B6 CD B4 BB 3B DA 53 5E A3 06 DE E6 CD 1D A4 35 61 6A 7B 9D 58 A0 FF F6 D0 0D 7A CC 7A 80 F0 48 FE 12 8E 73 B1 C8 C7 A4 3C 97 60 6F 57 64 C7 BC 0F 3F 71 35 AC 33 4D 38 27 8C 3C 8B 65 88 21 F6 84 60 BF 8D C6 7C DB 80 67 7E A2 13 D7 75 B3 A0 66 87 C6 BC 2D D6 BF 26 3F A7 11 A2 5D 59 BA 30 0F 45 0A 48 55 97 04 7D 5C 43 55 95 09 09 BA B7 B1 AB 99 9E CC 16 D9 67 2D 1C 55 96 ED 47 F2 8D 00 60 48 D1 52 8D 5B A9 38 BE B7 00 8A 6D 7D AB 97 41 A0 B8 17 65 48 9A 08 A0 3F C0 CC E2 03 03 13 BE 83 F6 50 2E 8C 5B 9F A8 C6 D9 32 F0 11 BD C0 96 0E A2 25 84 EA 66 DB 42 C4 DB A4 43 00 D0 68 E7 58 1A 92 A6 B7 91 15 5B EE C6 A1 AF 38 E5 53 0F F3 A6 3C FB 17 60 75 5E 37 4C 02 F8 B6 4D 48 86 AA D8 E4 4F 30 8B B2 7B 9C 9C DC CC

03

在这里我们用密钥D解密上面蓝色标记的数据块,得到解密内容:

01 19 00 00 20 B0 D1 98 D6 8E 58 BB F8 10 9D 15 10 2A 0E 05 84 84 66 93 AE 5B 2E CD 59 F3 D4 69 6B DE 56 44 F7 00 98 00 02 4C 75 25 5A 00 90 88 D6 8A A0 4A 49 AB DF 93 3B 0D DD F6 55 4B C3 28 AD CF 6C A4 91 92 37 89 8C 1F 2D 26 A8 F5 06 8F A7 A7 9B 4F 3D 64 D5 B2 40 6F 37 A8 C8 A1 41 A4 9D B8 5F B7 26 AB F2 CE 26 EC F9 9E C4 3C ED 0C 83 AE 51 CD 3C 53 95 21 72 99 61 82 9C 39 A9 D2 1C F7 A4 3C 51 3B 6C E2 89 CF 83 DA 98 66 D3 25 FA 71 0A D0 BA F3 83 D9 6D 24 E9 06 1A 33 7F A0 BF 8B 94 1B B4 57 6A 31 28 64 ED 50 15 C2 DA 10 54 88 A4 E7 01 F1 CF E4 79 7A 6F 2C BF C0 C3 00 38 79 47 ED BC 3E D0 64 61 2C 63 90 CB 4D 08 8D 81 6E AC 45 F8 4F A6 E5 37 84 88 5D 68 79 43 BF 47 DC FB 1B 22 B6 F5 17 54 D9 75 18 0E 81 70 41 E0 1E 6B 99 AC 0F 02 67 FC

46 51 43 38 76 42 74 33 42 63 71 42 38 48 55 68 00 00    //粗体 16位的数据是密钥 E

54 4A 74 62 67 79 33 57 57 4E 69 68 54 61 6D 56 00 00    //粗体 16位的数据是密钥 F

密钥H:

当QQ登录运行时会分别收发到两条命令号为0xE5 的数据包,我们对最一个数据包做分析。

02

1C 27

00 E5

51 CD 2C 11 18 E2 02 00 00 00 01 01 01 00 00 64 00 00 38 79 47 ED BC 3E D0 64 61 2C 63 90 CB 4D 08 8D 81 6E AC 45 F8 4F A6 E5 37 84 88 5D 68 79 43 BF 47 DC FB 1B 22 B6 F5 17 54 D9 75 18 0E 81 70 41 E0 1E 6B 99 AC 0F 02 67 FC 83 C7 09 D3 C7 F2 6D FA 1E 75 10 36 A0 31 B6 8C AE 49 CE C7 D7 74 2D 10 CF 41 67 32 B2 D3 59 9E 32 FA 47 FE 7E 42 38 42 DF 24 56 4A 12 8F 99 BC 28 13 67 81 2F 4A 4E 46 34 AA C8 B0 B0 FC 7C BD 92 A4 27 6F 0D B0 70 CC D9 F4 B4 A2 C6 2A 3A B8 B9 03 B6 CA BE D8 7D 32 87 E1 0E 5D D8 BE 36 A9 B8 58 58 C4 6B C6 CF 30 44 23 49 E1 48 96 4D BD 7E BA 18 33 FC DF 10 28 EB 52 57 94 9E 09 36 89 F7 F7 F9 A6 D5 00 06 69 8E 6D 72 53 0A 31 C6 35 72 1A C8 56 AC 4C 59 1C CB F2 8B BA 9E 74 E3 44 14 03 05 3E 66 C4 70 50 16 9D 31 11 46 5C 89 B5 46 F7 F8 E7 65 ED 00 12 46 C9 A4 D5 A6 37 50 61 5E 8A 62 9F 9A 41 40 28 85 0F 48 87 DB EF 03 9C 17 9D 11 0C DE FE 81 B3 4A 8F 6D 8D 54 C8 84 7C DD 4F 9A 35 0B 8D 07 FB FE E2 4D 28 8C B8 89 74 D7 1B DF F4 B3 35 3A 66 B8 B3 6A D8 C3 83 27 78 10 3E 56 B4 B5 9F 6D 16 C8 2D 3E 6F 9C 27 D4 7A 20 32 82 4F 6D B2 D3 90 75 A0 BC F1 77 E4 04 88

03

02

1C 27

00 E5

51 CD 2C 11 18 E2 00 00 00

5A 7C

DA 51 31 2B CC CF 1B 6F A4 DE 85 D0 A3 20 19 0C 89 88 30 0F AA AE 93 5F B5 A4 26 81 10 1E 5E AC 5D 5E FE DB 07 1A E9 47 F4 03 A1 C0 A2 02 1D A6 CB 47 31 76 94 BB D6 A5 6B FC C6 20 8D 15 AB 6A AA 4E 9D 7C F8 B7 07 34 75 AC AB 5D 3C 65 EB 79 62 A0 64 C0 E7 8C 7F A4 8B 25 91 98 1B 01 93 6E 61 2A 30 94 77 9D 86 7E 76 95 37 57 CC 7E 82 30 E3 7F 8A 30 15 14 82 D3 38 34 8A 42 1B 60 F3 FC 5B 9D AD 5C 25 C4 34 BC 62 E3 4B 7C F9 32 98 94 1C 0C 29 48 DB B0 32 68 5B 49 1D 6E 29 5C 1F B1 76 CD 70 4E D3 15 48 67 28 2D 17 24 ED DA D4 1C 30 95 67 56 E2 37 47 6C 1A 88 0D F4 2D B0 33 35 33 D8 3C 1D E4 12 9B 06 91 98 B3 D2 BB D5 3B 26 5D B8 2B FE B2 82 0F 2A CC 5A 87 BB 10 12 AC 9F FC F4 7B A8 85 33 16 A3 35 F1 19 68 9C 53 CE 60 52 95 4D FC BE D8 6C A9 A4 F3 DD 7C B1 C1 50 8D F8 ED 38 53 4C 99 A2 EA 90 18 10 75 FC A6 E7 4E E6 6B F2 AD CE BD 48 22 34 16 51 B7 CA E6 39 98 68 EE BA 9E AF AD CD DC 92 DA 28 81 34 68 53 03 A6 BE 9C 54 63 70 97 F3 3F CE 3B 84 AA 87 2E DE 28 0E 32 33 4C C8 2E 63 DD 1C ED 6E FC CE 61 A6 F4 68 BA 0B 09 80 33 62 2F AB 3F 8F DD 72 BD 26 91 46 5B 79 6F 73 44 73 E8 CF 75 B5 ED 99 9F 5E

C3 80 9D 37 BA 3D 19 D2 66 85 D0 23 56 10 14 7E 6B BF C4 F8 E9 9C 6E 53 24 32 C6 DC 12 5C 70 76 47 CB B7 0D EE 5A 03 D1 47 C2 05 32 D8 8C 99 B8 77 37 97 D3 88 D1 32 DB 3C 9D B8 45 3A 7B C4 45 81 DB 12 B5 C6 66 C6 F6 BB 9A 2E 2A 09 0F CF 88 4C 74 CD 9A E1 D0 6C D7 46 68 1C 9E 1F E3 CC 2F 12 F4 BC 1B 67 76 B3 46 30 09 CF E6 F4 99 9B 4E B2 51 EC BA 15 8A AC A0 A7 3F FD 1E 9D 1D 8D 7D BC B8 AC E3 F3 D3 A8 D1 C5 3D 7C 9E 02 BF CB CF 8E 6E 1A C2 F2 76 C2 1B 99 02 31 81 01 2B 2D 60 23 DF C8 48 2E 4A 1E C1 D1 22 EA 77 34 FB

03

我们用密钥 F (54 4A 74 62 67 79 33 57 57 4E 69 68 54 61 6D 56)解密,得到下面内容:

02 0D 01 00

6D 56 35 78 74 67 46 46 47 73 58 44 34 4D 36 72     //粗体 16位的数据是密钥 H

 

00 00 00 01 00 00 00 64 00 E4 00 03 4C 75 25 5A 3A FF 40 28 00 00 00 00 00 00 00 00 00 D0 4B A6 5B D8 5C C3 D0 3D F2 48 DB 46 15 C7 06 4F C1 82 52 F7 53 3E 35 69 96 4A 92 7F 73 3B D7 5E 29 8F 35 08 E4 02 CE 16 DC 7E ED D8 54 84 C4 EB 21 CD 8A 39 F4 72 D6 A8 65 1D 35 A9 9E 11 F4 68 08 AA 51 11 2C 9C 47 19 69 77 87 D5 34 29 02 70 A1 B5 32 04 16 A2 E8 7E FC C2 5B 0F 14 3E 28 99 CA 53 63 2D EC DF 71 64 A8 25 6A 2C ED A8 51 D3 53 C3 67 E3 E0 F4 D1 FB 9A E1 96 6F 58 D7 D7 03 A9 8A 71 CF 8D 2A 5F 2C 99 3E 1E 8D 1E BE D2 84 56 BF 8F 62 B8 0E AC C0 C6 59 40 52 43 54 09 4F 19 CF 8C 0A C1 AA 71 1C F0 ED 0F 74 5B 3D 1F 36 BD 92 F3 FC 3C BE BE 0E 41 CD 4F D1 A2 D9 42 D6 52 43 51 44 42 C3 0D 5F 41 58 7F 6D 84 4E 41 B6 68 65 76 75 49 47 70 38 32 4E 45 37 55 78 56 59 00 78 00 01 4C 75 25 5A 00 70 A5 1C 49 8D D2 50 07 38 96 83 28 0B 6E F2 5C 4A 47 DA 43 9A C7 A3 D9 64 8A 9C E1 30 A0 1D 78 8A 66 25 3C B1 FF 98 40 23 B0 D8 D6 3C BA F1 77 84 0B 50 56 D2 00 A1 9D E0 45 85 CB A4 0B 54 5B 0A 88 74 1C 82 86 3C 3F B4 0F 22 52 6B 30 38 24 6B 71 06 C5 F2 D3 69 FC F2 83 46 41 C0 E8 4B 93 A4 2D 09 1D 42 FE 75 B0 91 F9 0B EF 10 CA AE BB 7C 00 00 0E 0C 00 01 51 80 00 00 00 3C 00 02 00 73 01 6A 6A 46 51 4A 6B 42 35 75 49 6A 74 42 78 78 39 00 60 00 01 4C 75 25 5A 00 58 95 15 D2 D6 4A E2 64 40 F3 03 B0 7E F4 E7 F9 F3 DE 92 E7 BC 36 7A 81 EA D3 3F C5 43 7E 59 89 E1 D3 0F 11 B6 65 BF 72 66 68 5B 65 35 CE EF 0A 07 8B 3B EF B0 59 41 5B 5A D9 91 D8 63 24 E3 54 2A 30 69 51 35 86 D7 6F 48 B2 95 88 F4 CA 09 87 3E 70 EC DC 6F 27 00 C8 26 00 00

Session Key:

同样到了这一步骤,QQ会分别发送和接受到两个0x30命令的数据包,我们分析最后一个。

02

1C 27

00 30

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

03

02

1C 27

00 30

77 E1 2C 11 18 E2 00 00 00

5A F4 DE 8E AC C3 54 28 8C 39 C6 4F 97 64 08 DB 27 14 F2 20 BA C6 FD 89 0E 68 3E 48 FB F0 29 C5 99 59 DE 2E 77 2D 5E 9B 78 56 38 84 CE 98 51 9A 59 60 5A 2F D1 86 0D 9B 87 B4 D6 15 50 CB 86 C4 63 8A 95 80 75 1A 81 6A 73 3E 7F 06 8E 04 60 AF 79 27 18 7A 96 65 00 70 37 73 CD 6D 66 05 C3 C0 B5 EF 2B 0A 33 D3 09 4A 51 FC C3 BE 26 EF 11 3B BC CD D9 1C C0 D0 12 C7 7B DB 77 1F 9C 15 87 81 EE ED 7E 28 37 92 C2 69 CE 4F 05 20 92 9E BA DA A0 5B 39 93 CA A7 8C D5

03

我们用密钥 H (6D 56 35 78 74 67 46 46 47 73 58 44 34 4D 36 72)解密上面的蓝色标记密文,得到内容如下:

00

48 59 79 34 6A 79 57 77 65 66 6A 6B 76 51 4E 7A         //此次登录的session key

 

2C 11 18 E2 3A FF 40 28 4C D5 4C 75 25 5B 00 00 00 00 03 14 8F FE 4F BB B6 63 C7 69 C3 F1 3C DC A1 ED 76 A0 00 00 00 00 08 02 04 08 08 08 08 08 04 05 01 F4 03 E8 07 D0 0B B8 13 88 00 30 59 B8 16 02 23 0D BD 2B 3B 71 39 FD FB E3 EA F9 7A FE 5A 9B E4 B4 7D 9D B7 D2 2A B0 A0 D5 77 1A 00 80 B0 D9 04 3A 50 AB 45 69 D3 03 77 BB 87 70 3A FB 3E 2A 3A FB 95 D8 00 00 00 07

解密聊天内容

 

至此我们获取了终极密钥Session Key,现在要用它来解密聊天内容,下面是一个含有聊天内容的数据包,我们来分析下:

02

1C 27         // QQ版本标记

00 CD       //0xCD 是QQ发送聊天信息的命令标记

65 F3

2C 11 18 E2

02 00 00 00 01 01 01 00 00 64 00

FC 25 4A 56 26 C1 09 46 79 10 37 DC 71 12 C7 C0 4D AB 57 76 F8 00 CB E7 FC 62 F7 16 10 82 4E 2D E3 A4 60 60 BA EB B1 C5 08 AA A4 28 C6 26 FD 3D 26 AA 76 C6 0B 80 18 2A 68 0B 6B 8F 26 A9 26 5B E1 48 08 D6 C1 FD BE 24 27 96 1A B1 78 4A 48 2B 70 6C 2B CB 75 2B BC CE 60 0E EA 4D 66 6A A4 61 95 06 F5 EB 56 A3 B5 F2 8B 0B D1 FB 84 3C BE D4 B3 69 0F 99 FA C3 A5 82 BB 0E 2C DD 12 38 74 78 7E 8D 33 71 E7 D0 59 D6

03

解密内容如下:

2C 11 18 E2        //发送方QQ号码 739317986

1B D1 9C A6        //接受方QQ号码 466721958

00 00 00 08 00 01 00 04 00 00 00 00 1C 27 2C 11 18 E2

1B D1 9C A6

D1 3D 52 29 1D 1C 67 31 D3 04 1B C2 66 FA D5 7D 00 0B 71 27

4C 75 25 95            //聊天信息发送时间 2010-8-25 22:15:49 “晚安亭亭”

02 46 00 00 00 01 01 00 00 00 01 4D 53 47 00 00 00 00 00 4C 75 25 95 33 EA 6F 7D 00 00 00 00 09 00 86 00 00 06 E5 AE 8B E4 BD 93 00 00 01 00 18

01 00

15       //聊天内容的长度,也就是下面加粗体内容的字节数,正好是0x15 = 22 个

E7 8E 89 E4 BA AD EF BC 8C E6 88 91 E7 88 B1 E6 82 A8 E3 80 82  //聊天的内容

http://www.cnblogs.com/SkylineSoft/articles/2076679.html

http://blog.csdn.net/heanyu/article/details/6202903

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731