本帖最后由 SmallCake 于 2020-8-14 02:12 编辑
2018-11-22更新
初次分析QQPC协议,若有不足之处恳请前辈指点
进程:6880,QQ:..........,版本:QQ8.6
ecdhkey:03 42 D9 64 FC 18 11 6F 34 44 68 57 C0 18 B9 8F 65 93 49 AF 05 92 D4 04 C2
decodekey:C7 17 C9 B0 6F 88 B9 B5 A7 2A 64 64 69 1B 42 40
0825Data0:00 18 00 16 00 01
0825Data2:00 00 04 53 00 00 00 01 00 00 15 79
0825令牌:CD 76 D3 81 A7 37 6A A6 DB 02 A8 F6 9B 86 EC 54 95 EA DB 97 14 6E 28 8C 34 FF 08 A9 11 B3 E1 6E B1 55 A0 60 F4 35 E3 00 91 E6 02 8C 32 84 9B 1D E8 D1 5F EC 85 D1 DC F7
publickey:03 42 D9 64 FC 18 11 6F 34 44 68 57 C0 18 B9 8F 65 93 49 AF 05 92 D4 04 C2
0836Fix:31 27 D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 29
0826Key2:10 01 02 00 62 00 01 AF 86 DD F6 43 C1 88 1D 8C E9 45 89 A8 B6 BD C6
0836令牌:42 36 94 7B B6 65 A8 9C 75 FD 98 E0 AC 8F 84 76 20 D3 14 F4 5C 3D BC 90 0F D0 3E 92 B0 37 70 09 63 12 3F BD 20 8E F4 66 12 38 B6 1B 3D 13 50 0D 64 E7 35 75 2A DD C1 CB
MD51:46 65 AF 69 21 98 9E C9 0B AC 9D 5C 8D 4D 9F 42
MD52(密码和账户生成的):E1 C6 0F FB B1 EF 96 AE 0E FF 08 0E FD A1 67 B7
tgtgkwy:8D 19 AE A0 07 7E 8E 8F D8 BA 61 F9 23 01 56 66
0825发送包 [Asm] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | 02 包头
36 61 版本
08 25 指令
7A 4D 标识
6A 4E AC D5 QQ
[url=tel:03 00 00 00 01 01 01]03 00 00 00 01 01 01[/url] 00 00 67 FD [url=tel:00 00 00 00]00 00 00 00[/url] 固定
[url=tel:49 59 86 94 95 42]49 59 86 94 95 42[/url] 9F 0C 26 EC CF 36 BE 1B 96 1E 密匙
F0 6A B7 2E 15 12 下列全是密文
2D 6C E1 2D ED 19 37 FE 3F [url=tel:00 27 72 35]00 27 72 35[/url] 3E 28 9E
0E 64 B2 1B F6 76 25 14 DB F7 92 ED 68 89 1F 36
F4 BC CD D7 ED DB AE 03 F6 FC 85 0F 5F 6D C9 66
35 74 C6 3A 83 29 89 D6 86 79 9B 66 E5 41 22 DC
3B 24 FA 84 59 85 0F [url=tel:28 26 01 71 68 48 66]28 26 01 71 68 48 66[/url] 8C EF
35 9E 23 63 E8 8D 31 71 D9 [url=tel:14 40 52 94]14 40 52 94[/url] A0 1E 20
31 58 16 C8 4A 52 E4 79 A3 29
03 包尾
|
0825接收包 02 36 61 08 25 7A 4D 和之前一样 6A 4E AC D5 QQ 00 00 00 固定 0D 49 99 4E 8F 0B E3 B1 5A C0 5C 87 9C C9 9E 50 CF ED 9B 61 8F 88 BA C6 6F AF 5A E5 1B 8E 20 A6 2D 10 F1 AE 40 11 D3 97 5E 17 0E 5A D8 D7 8F E5 44 9A 04 A1 EA ** ** ** ** ** 97 0D E2 BF 9F 9E 1D BA 9D 91 70 96 D1 B5 08 10 C1 C5 25 60 91 C4 51 B0 1E 19 13 6C C0 21 全是加密数据(为了我自己的隐私,部分内容*) 03 包尾 加密数据解密结果: CD 76 D3 81 A7 37 6A A6 DB 02 A8 F6 9B 86 EC 54 95 EA DB 97 14 6E 28 8C 34FF 08 A9 11 B3 E1 6E B1 55 A0 60 F4 35 E3 00 91 E6 02 8C 32 84 9B 1D E8 D1 5FEC 85 D1 DC F7 0825Tokn00 17 00 0E 00 01 5B F2 C5 E4 登录时间 ** ** ** ** 登录IP 0836发送包 02 36 61 08 36 66 77 数据包标识 6A 4E AC D5 QQ 03 00 00 00 01 01 01 00 00 67 FD00 00 00 00 00 01 01 02 定义fix100 19 publickey长度 03 42 D9 64 FC 18 11 6F 34 44 6857 C0 18 B9 8F 65 93 49 AF 05 92 D4 04 C2 publickey8F 4E 4E 48 5B 4C 6B E7 DA 00 02 4F 5C 86 88 AD 0836Key1 C1 03 76 下列全为加密数据 5C FA 24 31 A0 36 27 9C 78 D7 DF 61 D3 FB 00 48 C5 1C 8A 09 B9 6F 20 00 35 D6 42 59 0F 12 08 FB F6 4C A7 2D 89 80 BD 4A 23 0D 83 56 DE 05 87 9B E5 7C 34 52 EE 07 C1 C1 FD 9D AE DD 93 1C 5A F8 87 53 C1 15 F0 02 A6 7C 54 E4 4E 37 27 54 B6 E4 85 2C 5A 54 BC B5 7E 8B 83 70 B1 08 CC A4 37 A8 11 41 6F 17 F6 AF C8 B8 5A F9 EF 04 E0 D1 A7 DD 84 20 8F F1 11 B4 69 98 DE 0D CF DC 41 EC D5 6F CB 76 AD E8 7F 30 88 C5 9A 3C E5 2F CC 40 DF 37 12 55 50 A5 FD 8B 5D DE 66 E5 C9 42 D5 61 8E 31 1A 50 B6 E6 20 0B C3 B9 DC D1 3E 5C B3 73 39 70 8F 78 F6 56 67 FD D1 48 F1 39 71 31 E6 F7 80 DD 2E 7B ED 37 E9 5B F2 F9 D6 C6 BC EB A4 AC 51 13 58 E0 67 6A 06 BC 27 DE 22 B1 90 23 50 9E 3F F0 56 61 A0 C5 6F 46 5F B8 DA C1 63 C4 61 F9 C2 EA 16 F7 44 4E 6F 82 D5 6B 78 2C 1B 35 D9 63 55 3E 8D 3A 9F C4 3E D6 B9 23 6E 1F ED 4E 70 91 E5 3B 5F CB 30 06 A7 7A E1 64 DA 25 07 EE 9F 80 19 E9 96 4D 4F A2 58 6C 65 10 A1 F1 DE 54 80 F7 65 98 E7 F2 EF 4C D7 8C C2 39 BA 0A 97 40 52 4F F9 B0 46 3B E4 90 23 CD 9E B1 39 AD 6F 5B 98 7E AD 55 44 12 9C 44 B1 F0 D2 42 51 E0 3D 21 0B B2 8E A4 EC 3F 24 AE E2 A8 3B EC E9 EF 15 59 03 F0 8E B9 94 1C D5 1F 16 CE 89 4E 52 E8 62 50 10 EB 82 55 51 8E B4 5A 2F 79 7C 53 BC C0 DE 9A D2 6B 0A D7 1A B7 F6 4E 04 63 E6 93 CB 6B 68 92 9A 03 加密数据解密结果: 01 12 00 38 固定 CD 76 D3 81 A7 37 6A A6 DB 02 A8 F6 9B 86 EC 54 95 EA DB 97 14 6E 28 8C 34 FF 08 A9 11 B3 E1 6E B1 55 A0 60 F4 35 E3 00 91 E6 02 8C 32 84 9B 1D E8 D1 5F EC 85 D1 DC F7 0826令牌 03 0F TLV_030F 00 0C 设备名长度+2 00 0A 设备名长度 4D 41 43 42 4F 4F 4B 50 52 4F 设备名 00 05 00 06 00 02 6A 4E AC D5 QQ 00 06 00 78 二次加密数据长度 AA D8 A8 B9 37 8E 2F 4E A4 63 91 E3 71 EA 62 F8 72 6E E8 B6 1E E8 58 A3 CE 98 C6 0C 74 18 89 4C 83 EE BE AE 20 1B CE CB 80 C0 63 8F A8 C2 FA BE 8E 19 53 25 9E 02 0D 26 D5 48 F3 65 94 E4 E3 C1 F2 27 20 03 7E 18 C8 4D 4C FD F8 D4 33 54 8E D3 42 22 67 F8 5F A2 D5 E1 B3 27 4A 3F 65 A5 2C 95 C4 39 9F 65 5E B7 20 1E 3B 48 30 4B 76 C8 63 EF 3A 88 3B 78 E9 A9 67 B8 二次加密数据长度到这全是加密的数据 [Asm] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 | 使用MD52解密 key:E1 C6 0F FB B1 EF 96 AE 0E FF 08 0E FD A1 67 B7:
56 8A E7 92 随机
00 02
6A 4E AC D5 QQ
[url=tel:00 00 04 53 00 00 00]00 00 04 53 00 00 00[/url] [url=tel:01 00 00 15 85]01 00 00 15 85[/url] 2825Data2
00 00 01
46 65 AF 69 21 98 9E C9 0B AC 9D 5C 8D 4D 9F 42 MD51
5B F2 BF 72 登录时间
[url=tel:00 00 00 00 00 00 00]00 00 00 00 00 00 00[/url] [url=tel:00 00 00 00 00 00]00 00 00 00 00 00[/url]
[url=tel:70 31 77 12]70 31 77 12[/url] 登录IP
[url=tel:00 00 00 00 00 00 00]00 00 00 00 00 00 00[/url] 14 00 10
31 27 D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 29 0826Fix1
8D 19 AE
|
00 15 00 30 00 01 01 0E 1C D5 DB 00 10 04 F1 4A AD 00 00 00 00 00 00 00 00 00 00 00 0002 86 10 6F DD 00 10 31 27 D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 29 0836Fix 00 1A 00 40 固定 B2 02 AA B6 9B 23 62 8F 74 B9 8F 23 BC 33 E5 EC 03 20 2A AA EF 2B 03 F8 2D 63 27 0A D0 37 C1 A5 F6 97 D3 D5 E8 5E 26 0F 12 26 45 4E 18 CF 39 CC 99 6D FF 9F A4 4F D0 5A F0 BE 1C 7F FF C1 3F BC 加密的内容 [Asm] 纯文本查看 复制代码 1 2 | 解密结果为:[url=tel:00 15 00 30 00 01 01]00 15 00 30 00 01 01[/url] 0E 1C D5 DB 00 10 04 F1 4A AD [url=tel:00 00 00 00 00 00 00]00 00 00 00 00 00 00[/url] [url=tel:00 00 00 00 00 02 86]00 00 00 00 00 02 86[/url] 10 6F DD [url=tel:00 10 31 27]00 10 31 27[/url] D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 2
其中:31 27 D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 2为之前定义的0836Fix,使用tgtgkey解密
|
6A 4E AC D5 QQ AA 23 51 AB E5 0A 35 8A 4D 3B 以上数据全部定义为Fix3 00 38 固定 42 36 94 7B B6 65 A8 9C 0836Token 75 FD 98 E0 AC 8F 84 76 20 D3 14 F4 5C 3D BC 90 12 38 B6 1B 3D 13 50 0D 64 E7 35 75 2A DD C1 CB ---- 00 14 8E C5 CC 09 FA 66 21 0A 32 91 A7 6C 36 B8 35 94 crc32Data 43 51 2D F6 crc32Code 0836接收包 02 包头 36 61 版本 08 36 指令 66 77 标识 6A 4E AC D5 QQ 00 00 00 固定 7C 99 红字为加密内容,使用decodekey可以完成第一次解密 5D D1 AA 2C 94 32 12 4C 2B FB E4 8C 5A 78 CF 3D 93 2C B1 7B B2 7C 36 AB E6 68 3A 6F 42 A2 61 97 7A 08 7A 12 F9 3A DC E1 9E 2B 3B 75 0F 76 18 8D 4A 23 67 42 C4 75 67 D1 1A 78 4C A1 CB ED 40 FD CF 40 62 C8 C8 6E 01 E5 E3 51 49 B2 34 2E 51 BB 9F A1 25 EC 11 20 6F A7 16 C7 57 26 D8 A7 81 54 05 D0 E7 2A C4 EF FB AD 4E 67 FA CC BB 18 D6 00 E3 16 35 5B 0F 29 7B F3 EC 15 0E 80 30 BB 18 41 CF 98 5A 49 69 71 F0 2E 6A BF 48 90 D3 1B AE FE 68 9B A4 E2 BC B8 2C 91 8C 96 1D CE AE D2 DA 27 43 1B 87 F1 5F 67 DD 4D 0B B5 80 6C FE 3E 52 06 DC 3B 98 C1 3F F8 34 AC 21 46 32 E7 6C C0 74 D1 F4 2A 5F 26 FF 39 9C C4 74 7F B3 79 95 D7 03 红字第一次解密结果如下: 27 53 DC 93 DA A8 F0 8A E9 2F E9 52 7A 12 6A 51 18 57 0B C0 F9 ED 4A 14 63 5B A0 4B DC BE 66 58 B4 C9 8B E2 3D 84 B0 B6 0E 92 DC 8F A5 BA BF F9 71 F5 20 8D B7 9B 84 C1 FF CB 75 37 E1 66 21 E1 EF BF 6B 23 A6 08 82 55 B5 2B DB 4A C6 0C 00 73 78 EE 40 C6 85 57 CE 01 2B 7D CD 73 A3 F2 1C 9C B6 3C BF 43 DD B8 88 28 CD CE DC CE 22 AB 31 21 AE 56 8D 55 AB A6 0D 17 9E AF B8 DC 87 8A 0B DE 19 C5 71 82 42 BC F9 41 35 7A 04 75 EA 6A C2 35 A3 B3 64 1C 0C 46 DD 5E 5F F2 33 CE EA 27 08 8B 接着可以使用tgtgkey进行第二次解密: 01 00 1E 00 10 41 2E 51 2A 69 7A 21 47 65 3F 7D 5F 7A 50 62 79 更新tgtgkey 19 96 7D 84 64 37 0F (K001)这些红字为密匙,可使用MD52进行解密 93 23 CA 00 B6 B8 70 30 D2 AD 9D 7B FB 96 51 29 86 05 DA 5F 3D 02 5C E7 A5 8B B6 AD 72 5D 61 06 F3 CA C8 98 09 BC A3 E3 95 04 B4 FF F2 E1 C0 01 AC D3 C1 8B 0E 07 77 AD 0C 0A 03 C2 FD 25 CC F5 B0 10 43 B3 DF 5C D6 E1 A2 78 E4 3D A3 90 08 F7 26 B4 A7 CC 61 48 CB 10 这里的红字是令牌 22 CE AD 5A 8B 92 7C 64 14 40 B5 79 AA DB 60 A0 3F 8A DB 12 37 FB 31 9F C9 2E EB CD 69 93 8F 97 5C 93 22 2B CF BC 2D 73 25 7E 6E 4D 73 A0 C1 DD 66 86 8F 93 67 F9 85 FF 05 0C 91 33 8A 39 0C DB AA 0836二次发送包 02 36 61 08 36 66 78 数据标识 6A 4E AC D5 QQ 00 19 03 42 D9 64 FC 18 11 6F 34 44 68 57 C0 18 B9 8F 65 93 49AF 05 92 D4 04 C2 publickey49 C2 39 1D C7 37 4F BC 89 58 F8 E3 EF D6 AD 77 0836Key1 B5 3F EE 下列全为加密数据 A2 5D 31 ED 14 CE 8E 0B 25 F5 AB E7 43 8E 0F 9E F6 B2 84 1A 58 24 C8 57 D0 24 8E 9E 66 8B 33 EB E9 1C 6D 85 9D CE 12 4C D8 FE C9 BA 0E 70 CA 38 1B DC BB 35 DA 85 83 83 BC C2 4C EE 22 E8 14 A1 57 8B 24 9A D6 FB 23 F2 6F 26 91 9B 3D AC C7 2C FD 60 E5 C7 4C 52 C4 40 3D 5E 76 0A 16 CC F1 56 19 BA F3 A5 BA E9 49 8E 81 51 C2 B7 95 C4 21 B8 63 F4 85 65 D2 D7 A4 C5 A2 F0 07 0E 8F 4A 4A D7 8F C5 36 C3 AC 94 93 66 E9 82 B9 AF 91 8B EF D2 77 01 2C C4 23 63 66 4F 5A 7D DD 49 B2 B2 8C 57 5B 1C F0 87 6E C7 EA 6B 8A 29 60 BE 61 FE 9E BB AF 5D 6A 6B C1 25 7E BB AD 2D 5A 3D E0 2C 71 48 06 A2 56 2A A7 03 7B 3E 9A 4E 49 D1 1F 73 DA 15 45 96 6B 90 3E 83 86 DA 26 B6 39 84 FD 8E A2 50 98 0E 05 E8 4D 83 03 91 A3 18 92 7E 20 B2 18 96 E5 94 C4 B7 20 AA C8 83 72 3E 8A 5A BE D4 B9 7A FC 7B 30 59 13 7D 6A 39 49 3A 3A 46 7E 40 57 2C 76 01 73 3C AD 00 B2 50 53 E8 99 A3 47 8B 41 0D 42 BB DB 95 02 0C CC C1 B6 C2 EF F9 9F 6A 90 3A CB 66 6C 44 E3 69 E4 39 C9 AA 4A B9 8E 6E F2 33 F6 B4 BA A6 F6 3A 1F 27 F8 DE 46 FC F4 19 5D D3 EA 39 71 3F 53 25 DB C1 9F CF D1 A2 CD 99 67 8E EA 35 9A CD 28 F4 A0 1E 79 78 11 0B 26 2F 34 43 44 7A 65 1D 66 A8 62 CB E5 92 76 C8 5B 48 4B B7 A4 33 CA D5 8C ED 4C 85 69 9A 84 5D 64 FF 59 F5 15 B7 D7 2C E8 E8 23 A8 30 73 1D A9 4F 65 D9 1D 7D 28 0B 4A D7 5C CB BA 14 94 9B AA 66 EF FA A0 33 94 D9 11 0A A0 75 0A 74 BF 29 9E D8 0B 5C 3B 58 B1 81 AD 78 98 E9 4C FE CC 22 9C E5 29 1F F4 7A FD 16 50 EF F1 8C 2E 92 7F AA AA 98 01 1B DE 6B 0D 6E 28 53 44 C3 95 9F EE CA EC 8A EC 3D 1A B5 72 5E 35 3E D6 5F 2D 6F ED E9 30 69 FA 58 A8 34 EF C7 72 7C 33 A0 F6 EC FC 9C 44 4D E1 05 EC 09 28 F0 42 29 0B 23 62 90 5F B1 86 9F 18 D2 C5 D7 C6 C2 F8 15 E7 34 9B F5 86 5F 3F C7 45 48 7E 62 6A AB 3B 4B 8A BE 4C C8 9C 7C B1 FC 5D 3F 2F 6D D8 4F 73 BD 21 09 2D 50 F9 68 05 FE EF 65 D6 41 0B CC 0C 56 03 包尾 解密后 01 12 00 38 CD 76 D3 81 A7 37 6A A6 DB 02 A8 F6 0825令牌 9B 86 EC 54 95 EA DB 97 14 6E 28 8C 34 FF 08 A9 11 B3 E1 6E B1 55 A0 60 F4 35 E3 00 91 E6 02 8C 32 84 9B 1D E8 D1 5F EC 85 D1 DC F7 --------- 03 0F 00 0C 00 0A 4D 41 43 42 4F 4F 4B 50 52 4F 以上全是设备信息 00 05 00 06 00 02 6A 4E AC D5 QQ 00 06 00 78 二次加密长度 19 96 7D 84 64 37 二次加密数据 0F 93 23 CA 00 B6 B8 70 30 D2 AD 9D 7B FB 96 51 29 86 05 DA 5F 3D 02 5C E7 A5 8B B6 AD 72 5D 61 06 F3 CA C8 98 09 BC A3 E3 95 04 B4 FF F2 E1 C0 01 AC D3 C1 8B 0E 07 77 AD 0C 0A 03 C2 FD 25 CC 75 B0 10 43 B3 DF 5C D6 E1 A2 78 E4 3D A3 90 08 F7 26 加密数据到此为止 F1 4A AD 00 00 00 00 00 00 00 00 00 00 00 00 02 86 10 6FDD 00 10 31 27 D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 29 fix2end00 1A 00 40 D5 B0 BB C3 29 B6 以下全是加密内容 8C 78 6F CA 66 0B 4A 21 47 77 DA E7 47 AE 04 09 B8 FD 5E A4 37 0E DF F9 9B 4D 85 D6 89 17 8A F5 70 81 9A 66 AF 61 A7 F1 3D E9 E8 64 86 BC 1F D8 9C 64 06 AC 51 22 E9 95 2B 96 以上全是加密内容 6A 4E AC D5 QQ 00 01 00 00 01 03 00 14 00 01 00 10 97 25 CE F1 4D 99 CD67 C9 58 BE DB 5F 06 64 53 01 10 00 3C 00 01 00 38 B4 A7 令牌开始 CC 61 48 CB 10 22 CE AD 5A 8B 92 7C 64 14 40 B5 79 AA DB 60 A0 3F 8A DB 12 37 FB 31 9F C9 2E EB CD 69 93 8F 97 5C 93 22 2B CF BC 2D 73 25 7E 6E 4D 73 A0 C1 DD 66 令牌结束 05 07 00 11 01 97 23 B9 72 5C 59 AA 23 51 AB E5 0A 35 8A4D3B 固定 3E 00 63 02 04 03 04 01 00 04 00 58 56 00 00 00 00 31 27D7 14 2F 93 7E 10 6F 2A 51 29 AC 54 50 29 03 01 00 00 67 FD 15 79 00 00 01 0200 00 00 00 07 DE 00 03 00 06 00 01 00 04 00 03 00 04 20 5C 00 固定 93 76 BB 9A 07 0F CF 47 71 A0 2B 47 52 BB 14 2F 0B C5 DDF7 A7 7E BD 2A 23 B0 37 69 3B DC 1B 6C MD5_32(算法不明)68 03 12 00 05 01 00 00 0001 05 08 00 05 01 00 00 00 0003 13 00 19 01 01 02 00 10 7D 7B EF 63 A2 63 09 46 26 09 1D ED 8E 89 BD 47 00 00 00 固定内容 在此定义为Fix3
10 01 代表无需验证码(如果需要验证码则为0F 01)
02 00 62 00 01 固定内容58 63 E8 59 39 75 DC 43 6C 47 63 F3 CA 21 38 8C 0836Key2 00 38 固定 FB 0836Token DA 66 39 8D 9B 00 13 44 E5 13 45 B1 D6 D9 6D 06 8D 01 4A B2 23 84 31 EA F1 F6 8F FC 7C 52 BC EA 8C D8 4D 0C E7 BE F1 ---------- 00 14 48 7E 97 7F A6 74 1F A2 D1 39 E8 D7 EC E8 2F B9 crc32Data 3890 C1 2F |