QQ2013 协议分析

2024-03-02 17:38
文章标签 分析 协议 qq2013

本文主要是介绍QQ2013 协议分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(本文为转载文章,任何人转载请注明出处:http://blog.csdn.net/xieqb/article/details/8811148)


在目前的版本中,其主要分析0825 0826数据包。

先来2个数据包

NO1:

02 32 41 08 25 25 B7 0F 10 A5 38 03 00 00 00 01
01 01 00 00 66 28 00 00 00 00 A8 89 BC 90 FA 7C
6A 32 55 EB D8 F4 2B 52 25 C8 C4 69 C1 09 4F A8
6A BE 0C E3 05 74 F5 65 F4 10 3A 0A 86 EB E2 CD
91 E9 1A 0A DA 71 B6 7F DB 47 61 8D 32 84 8A BC
5B 4D A5 EE 38 C2 AA E0 18 CF C0 40 6A 6E EB E4
29 DD 11 2E 98 DA 26 B2 AE 60 39 08 22 76 87 AA
DC B2 03

对包进行拆分分析:

02开始,03结束,多年不变。

32 41 所使用qq版本号

08 25 此包中qq数据的命令类型

25 B7 此包的序号

0F 10 A5 38 QQ号码

03 00 00 00 01 01 01 00 00 66 28 00 00 00 00 随机值

A8 89 BC 90 FA 7C 6A 32 55 EB D8 F4 2B 52 25 C8 随机的tea key 这个key主要是用来解密下面一段数据,即剩下的数据部分

解密后为:

00 18 00 16 00 01 00 00 04 17 00 00 00 01 00 00
13 C9 0F 10 A5 38 00 00 00 00 01 14 00 1D 01 02
00 19 03 09 8E F4 8D 8F 71 EA F1 5E EF A2 26 44
92 FB 12 49 7E 3E FB AA 62 3C 04

各字段分析:

00 18 00 16 00 01 固定6个字节

00 00 04 17 00 00 00 01 00 00 13 C9  12字节

0F 10 A5 38  QQ号码

00 00 00 00 01 14 00 1D 01 02 10个固定

00 19 后面数据的长度为25(19为16+9)

03 09 8E F4 8D 8F 71 EA F1 5E EF A2 26 44
92 FB 12 49 7E 3E FB AA 62 3C 04

第一个包至此结束

.....................................................................................................................................................................................................................

第二个:(s->c)

02 
32 41 
08 25 
25 B7 
0F 10 A5 38 以上同第一个包

00 00 00 固定

剩下的数据全是加密之后的,解密的密钥是第一个包中的那个随机密钥

7B 59
7B E9 18 31 10 F0 84 A5 CD 3B 90 72 74 C6 7A 64
E2 60 17 16 5D 61 B9 8D 74 C4 83 F5 2A 27 60 B9
77 AE AA DF 2D 74 31 54 05 9E 8F 3D 13 7B BB BB
0D F4 BB 95 17 E6 DB C9 13 05 CD 41 37 9D DB 57
9F C7 04 A1 01 72 D7 25 AE 81 A0 63 17 A0 11 6B
9F D6 E7 43 B9 63 59 3C 4A 40 B7 D2 47 EA

解密之后为:(密钥:A8 89 BC 90 FA 7C 6A 32 55 EB D8 F4 2B 52 25 C8)

00 01 12 00 38 6A 24 17 76 A8 5D 4A A2 8F 54 1C
B3 C6 17 B9 14 7D A7 93 86 6A D7 5A 7D 45 63 1C
F7 7D 20 C6 03 1E B1 B1 46 A9 3E DD 31 63 5B DA
4B DA 83 05 AA 6C 88 60 60 38 DF 43 75 00 17 00
0E 00 01 51 6D 31 0D 3B AE 2C 91 04 2C 00 00

分析:

00 成功标志 

01 12 
00 38 长度 56字节
6A 24 17 76 A8 5D 4A A2 8F 54 1C
B3 C6 17 B9 14 7D A7 93 86 6A D7 5A 7D 45 63 1C
F7 7D 20 C6 03 1E B1 B1 46 A9 3E DD 31 63 5B DA
4B DA 83 05 AA 6C 88 60 60 38 DF 43 75 
00 17 00 0E 00 01 
51 6D 31 0D 时间
3B AE 2C 91  IP
04 2C 00 00

............................................................................................................................

No3:0826

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

解密之后的数据为:

01 12 
00 38 长度
6A 24 17 76 A8 5D 4A A2 8F 54 1C B3
C6 17 B9 14 7D A7 93 86 6A D7 5A 7D 45 63 1C F7
7D 20 C6 03 1E B1 B1 46 A9 3E DD 31 63 5B DA 4B
DA 83 05 AA 6C 88 60 60 38 DF 43 75 和第二个包的一模一样
00 05 00 06 00 02 
0F 10 A5 38 qq号码
00 06 
00 78 长度120字节以下120字节是加密的数据,需要进一步解密
3B 70 03 15 7B 2E
E3 74 79 32 CC BB B4 B4 90 A9 EE A2 06 36 67 6B
32 E3 88 2F 00 47 B5 7D CC 23 AD 9D 5E 5A DE 2C
0C FB 31 75 86 2D 02 6B E4 44 D2 CC F3 A4 C1 42
DD 62 BD 40 EC B5 5B E3 EC 8A 5B 03 C5 C1 AC 62
E8 80 06 9E FB 68 F8 66 EC C6 F5 D8 02 DD 19 D1
0F 79 FD 5E 65 11 DA 95 93 B7 94 6E 61 EB 61 80
33 D3 EB 40 75 A2 D5 CC D7 B6 18 DC EB 50 C9 58
16 65 

以上120字节的解密密钥为md5(md5(密码)+\x00\x00\x00\x00+qq号码的4字节)(本群群就是0F 10 A5 38),此密钥不能通过在线的方式算出来,需自己编程,

其中的\x00 表示一个字符串的结束,不是数字00,同时进行第二次md5时,第一次md5的结果是16个2进制,并非32个字符,一定需区分开。

此120自己解密后的数据为

D2 7C 83 8F 00 01 0F 10 A5 38 00 00 04 17 00 00
00 01 00 00 13 C9 00 00 00 95 CE D8 2C 47 6A E2
3D B2 2D 52 B9 DB D4 C8 8B 51 6D 31 0D 00 00 00
00 00 00 00 00 00 00 00 00 00 3B AE 2C 91 00 00
00 00 00 00 00 00 00 10 F0 F0 F0 F0 F0 F0 F0 F0
F0 F0 F0 F0 F0 F0 F0 F0 25 2B 8F F4 26 02 4E AE
B7 40 FB 01 BE 65 31 68

120字节解密之后的数据

00 18 00 16 00 01 00 
00 04 17 00 00 00 01 00 00 13 C9 
0F 10 A5 38 
00 00 00 00 01 03 00 14 00 01
00 10 
F4 62 29 09 AC A8 AE 05 46 56 70 CF 59 B0 42 05
 
00 32 00 37 3E 00 37 01 03 01 03 00
00 04 00 52 7E 00 00 00 00 00 BC A9 C1 00 9E EC
E8 2B 9F 7D 63 4C AB AB 4E 65 CA D6 C8 F1 67 DD
17 EB 99 E7 A4 2D CD DB 49 70 C1 96 44 9A 68 01
14 00 1D 01 02 00 19 03 09 8E F4 8D 8F 71 EA F1
5E EF A2 26 44 92 FB 12 49 7E 3E FB AA 62 3C 04
01 02 00 62 00 01 AB C8 50 49 1E 14 C1 3D B4 3B
D1 BF 59 09 6D 17 00 38 06 27 EA 5D 3F 92 A1 8F
E1 4B DD E1 1A 51 F8 54 B9 CC C0 8A A8 8B 1F D9
B6 B0 FC 9E 9A AA 5C D4 35 64 CD E5 18 BC 04 BF
46 37 C5 2B 3B F3 03 5A 2D DD 49 C1 91 23 58 28
00 14 6E 7F C3 DE A6 AF 87 AB 3E F5 D1 67 5B 54
34 84 8E D1 50 AF 00 1A 00 40 
7C 0D 5B FB 46 3E A3 3F DB C0 8D C7 4A BD B2 25 
4B 76 03 9C C5 DB AE F9 B3 26 D7 84 BD 60 93 DF 
F2 D7 6B E8 14 38 3D 57 95 44 0F A6 DB FF FA A8 
31 58 53 6D FE CD 75 BF F1 DB 1A 34 29 5B B0 D0

这篇关于QQ2013 协议分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/766924

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致