协议分析之qq协议---qq登录
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
协议分析之qq协议---qq登录的更多相关文章
- 协议分析 - DHCP协议解码详解
协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...
- BT协议分析(1)—1.0协议
简述 BT下载是采用P2P的下载方式,下载的大致形式采用如下图所示,处于图示中心的称为Tracker服务器,其余称为Peer. 缺点 1.资源的安全性 2.资源的实效性(没有上传者则BT也将失效) ...
- 蓝牙协议分析(3)_BLE协议栈介绍
1. 前言 通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂.欲说还休”的感觉.有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议, ...
- Zookeeper ZAB 协议分析[转]
写在开始:这是我找到一篇比较好的博客,转载到这来进行备份原文参考: Zookeeper ZAB 协议分析 前言 ZAB 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播 ...
- kerberos认证协议分析
Kerberos认证协议分析 Kerberos认证协议流程 如上图: * 第一步:client和认证服务器(AS)通信完成认证过程,如果认证成功AS返回给client一个TGT(用来向TGS获取tic ...
- TLS握手协议分析与理解——某HTTPS请求流量包分析
https://xz.aliyun.com/t/1039 HTTPS简介 HTTPS,是一种网络安全传输协议,在HTTP的基础上利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护 ...
- NetAnalyzer笔记 之 十四 NetAnalyzer 6.0 的使用方法 -- 3.协议分析与统计
数据分析 完成了数据的抓取,那么接下来就是NetAnalyzer的第二个重点部分了,协议分析作为整个软件的核心之一,在最新的NetAnalyzer中已经得到了巨大的提升.NetAnalyzer中协议分 ...
- QQ快速登录协议分析以及风险反思
前言 众所周知,Tencent以前使用Activex的方式实施QQ快速登录,现在快速登录已经不用控件了.那现在用了什么奇葩的方法做到Web和本地的应用程序交互呢?其实猜测一下,Web和本地应用进行交互 ...
- QQ传输协议分析
2015-06-16 16:27:07 一. 实验目的: 在虚拟机下NAT模式下通过Wireshark抓包,分析QQ的传输模式.了解QQ在传输信息过程中用到的协议.分析在Nat模式下,信息传输的穿透性 ...
随机推荐
- jenkins配置发送邮件
1.打开系统管理->系统设置,找到邮件设置,如下: 2.SMTP或者其他方式的发送邮件,可自行配置,一下列出了qq邮箱和163邮箱设置的地方,如下图: qq邮箱: 往下拉,找到如下图: 163邮 ...
- wamp出现You don’t have permission to access/on this server提示
本地搭建wamp,输入http://127.0.0.1访问正常,当输入http://localhost/,apache出现You don't have permission to access/on ...
- 58同城职位分类数据 json
{ "level0": {"0": "销售", "1": "客服", "2": ...
- LOJ#2304. 「NOI2017」泳池
$n \leq 1e9$底边长的泳池,好懒啊泥萌自己看题吧,$k \leq 1000$.答案对998244353取膜. 现在令$P$为安全,$Q$为危险的概率.刚好$K$是极其不好算的,于是来算$\l ...
- mysql into outfile 导出
<sql> into outfile 'xxx.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; <sql> 表示 ...
- LeetCode OJ——Word Break
http://oj.leetcode.com/problems/word-break/ 动态规划题目,重点是建立出模型来: fun(start,end) = fun(start,i)*fun(i+1, ...
- 关于PHP接收HTTP模拟POST传JSON格式时$_POST为空的问题
编写项目时需要将数据转换成json格式的字符串,并通过post传参传给后台,但在后台接收数据时发现$_POST参数为空 头部为: curl_setopt($ci, CURLOPT_HEADER, 0) ...
- RSA 公钥加密算法
RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的. 这个算法的名字也是他们三个人名字首字母,RSA算法基于一个十分简单的数 ...
- 华硕win7安装ubuntu14.04.02注意事项
一.win7下划出给ubuntu系统的分区 1.win7自带分磁盘的工具,只需要压缩步骤即可,不需要继续分盘符格式化等操作 win7下为绿色 安装时为free space 二.制作启动盘并安装注意事项 ...
- Java爬取51job保存到MySQL并进行分析
大二下实训课结业作业,想着就爬个工作信息,原本是要用python的,后面想想就用java试试看, java就自学了一个月左右,想要锻炼一下自己面向对象的思想等等的, 然后网上转了一圈,拉钩什么的是动态 ...