手机QQ协议分析
手机QQ协议分析
篇一:QQ协议分析
QQ协议分析
一、 概述
QQ是目前流行的及时聊天工具,QQ协议非常庞大,版本升级比较频繁,而且与多数软件不同的是,它的客户端升级往往伴随着协议响应的改变。本文是基于QQ2008版的QQ协议分析。QQ消息是加密的,QQ的加密解密用的是TEA算法,几乎无法破解QQ消息内容。但是可以根据QQ包头和协议格式识别QQ数据。
QQ支持TCP和UDP传输,经过观察基于UDP可以用端口再根据协议特征方式识别;而基于TCP的HTTP方式可以根据协议识别QQ数据。
二、 QQ协议分析及数据特征
QQ协议有多种包头,每种用途分别代表一类用途的包,但不是所有的包都有包尾,以下是
kpop star 李夏怡一些存在的包头包尾的格式:
男朋友生日送什么礼物好表1
根据抓包分析,QQ的UDP数据的服务器端口号总是在8000端口,而且UDP数据符合上述表格描述。下面是2类UDP数据包,其中服务器端的端口号为8000。
例1:
00 1b 0c ce 5b c9 00 1d 72 9a 8e 1d 08 00 45 00
00 67 0f 87 00 00 80 11 ed da c0 a8 22 34 3a 3d
20 0b 0f a0 1f 40 00 53 9d b6 02 01 00 00 00 38
05 3d e2 54 00 00 6a 23 01 00 12 37 80 21 ae 29
fe 9f 91 b0 23 48 8d 12 39 8e 5f e9 76 14 80 69
04 1c f1 69 70 6b cf 04 71 66 92 e6 ea 24 41 63
02 54 3a aa e8 17 5e 6b 27 a3 99 2a 18 29 e5 fb
51 64 93 d7 03
例2:
00 1b 0c ce 5b c9 00 1d 72 9a 8e 1d 08 00 45 00
00 59 0f c1 00 00 80 11 c1 9a c0 a8 22 34 77 93
公务员考什么0e c9 17 71 1f 40 00 45 5f 7a 03 50 32 b0 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 01 00 00 12 37 00 00 00 00 00 00 00 00 00
00 05 00 05 3d e2 54
在用Ethereal抓包过程中发现有些8000端口的UDP数据包,有0x02包头但没有
0x03包尾,但它确实属于QQ数据,不知道是什么原因。
根据观察,QQ除了使用UDP通讯,还与TCPF服务器通讯,而且与TCPF服务器的通讯量远远大于UDP通讯量。文本聊天就是这一类型,下面就简要介绍TCPF协议。
TCPF(Text Chatting Protocol Family)文本聊天协议族,它主要支持与其它QQ端进行文字聊天,TCPF是建立在UDP协议上的协议族。
TCPF格式为:包头+数据+包尾。
包头:所有的TCPF包的前七个字节是包头,包头可是识别包的内容,包头格式为: 第0个字节:TCPF包标示:0x02。
第1-2个字节:发送者标识,如果是0x01 0x00,表明是由服务器发送,客户端的标识与所使用的QQ版本有关。
第3-4个字节:命令编号。
第5-6个字节:命令序列号。
包尾:所有的TCPF包都以0x03作为包尾。
不完美的她定档在包头和包尾中间的数据分为以下五类:
登录请求包(LIP,LogIn Packet),它是由客户端向服务器发出登录请求的数据包。
登录应答包(LRP,Login Reply Packet),它是由服务器响应客户端登录请求的数据包。
新文化运动的主要内容注销请求包(LOP,LogOut Packet),它是由客户端向服务器发出注销登录请求的数据包,服务器对这个包不作应答。
客户端其它包(CSP,Client Sent Packet),它是由客户端向服务器发送的其它包。
服务器其它包(SSP,Server Sent Packet),它是由服务器向客户端发送的其它包。
具体TCFP包结构请参阅QQ协议分析之TCPF包结构.htm文档。
用Ethereal抓包发现存在大量TCPF协议格式的QQ数据走的是80端口的HTTP方式。下面是一个HTTP的TCP流的16进制数据:
有关植物的诗歌00 3e 02 12 37 00 91 26 64 05 3d e2 54 32 b8 c2
bf a4 d2 65 4b e9 8e d5 4f 23 51 74 f6 64 55 d2
57 d3 d9 64 78 77 77 ef ed cc 78 67 db 00 de 12
a0 12 b1 82 96 1c 8b c0 c8 53 a9 4d 83 03
下面介绍QQ传送文件数据包。文件传输是建立TCP连接之上的,其格式是包头为0x04包尾为0x03,其包的格式如表1所述。下面是用Ethereal软件抓取的文件发送包的某个部分:
04 12 37 00 68 00 01 61 83 05 3d e2 54 00 00 00
00 00 00 00 00 00 38 3a 4c a0 8e 74 d7 b4 3a d1
c7 67 8f c4 16 69 9f 44 f8 ae e8 68 5a c2 ca 0c
bf 48 86 26 2c 85 b8 ab ae d2 b1 f9 a8 6b b8 92
a3 a9 bd 51 38 ca d7 ae ce c3 f0 64 c4 a8 db a5
9b df c1 9f cd 65 35 41 0d 12 8c 2a dc 25 0f a1
64 83 4e b9 92 91 5d 03
还有一种文件传输情况不符合上述规律,在传输文件的包中前几个字节是: 04 12 21 …
或者是 27 00 00 00 00 14 00 00 00 00 01 05 (需要记录这组会话的IP地址和端口号,之后这组会话之间的数据就是QQ文件传输数据)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。