ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:20.58KB ,
资源ID:12277971      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12277971.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(qq用的是什么协议.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

qq用的是什么协议.docx

1、qq用的是什么协议竭诚为您提供优质文档/双击可除qq用的是什么协议篇一:qq协议简单分析qq协议简单分析qq的版本:qq的版本升级比较频繁,而且与多数的软件不同的是,它客户端的升级往往伴随着协议相应的改变。目前,对研究qq协议版本比较重要的是:qq2000c。它对应的客户端协议版本是08xx,目前对这个版本的研究比较多。qq20xx(0808)这是腾讯最新公布的qq版本,目前发现它对应的客户端协议版本是0a1d。目前对这个版本的研究才刚刚开始,此版本对协议做了比较大的改动。协议类型:我们尝试把qq的协议进行分类:文字聊天协议族(tcpF,textchattingprotocolFamily):

2、它主要支持与其它qq客户端进行文字聊天。tcpF是建立在udp协议之上。udp数据包中的第一个字符02为这个协议族的标识。tcpF的服务器使用8000号端口,腾讯的qq客户端软件一般从4000号端口开始尝试使用,但实际上,对客户端使用的端口号并没有限制。目前的研究集中在tcpF上。其它未知可能存在的协议族:我们观察到qq除了与tcpF服务器通信以外,还有与其它的服务器使用udp进行通信。目前我们观察到的服务器为218.17.217.111:8000。客户端使用与tcpF不同的端口。目前观察到的从客户端发出的包以06开头,而服务器返回的包则以01开头。目前其具体作用未知。我们注意到一个有趣的现象

3、是,如果选择离线后重新上线,那么在发出登录包之前,这个通讯已经开始。我们暂时把它命名为数据传输协议族(dtpF,datatransferprotocolFamily)。最新的研究发现,它传递的是qqshow的图片数据。语音、视频聊天:目前还没有开始分析,尚未知道是使用udp还是tcp协议。聊天室:没有分析,应该是tcp协议。随着对这些协议分析的开始,我们会给它们更精细的划分和恰当的命名。tcpF:tcpF是建立在udp协议上的协议族,主要支持文字聊天功能。tcpF是以请求响应模式工作的。也就是说,客户端发出一个请求,服务器端会给出一个相应的响应;服务器向客户端发送信息,客户端也会给服务器相应的

4、响应。请求和响应通过相同的序列号来进行配对(请求代码也应该相同)。而且每种请求的发起方都是相同的。目前,已知的请求包括:0x0001注销登录0x0002心跳信息0x0004更新用户信息0x0005搜索用户0x0006获取用户信息0x0009不需认证方式添加好友0x000a删除好友0x000b需要认证的方式添加好友0x000d设置隐身、示忙等状态0x0012确认收到系统消息0x0016发送消息0x0017收到消息(服务器发起)0x001a未知作用。0x001c在对方好友列表上删除自己0x001d未知作用。0x0022登录0x0026获取好友清单0x0027获取在线好友0x0030群操作指令0x0

5、080收到系统消息(服务器发起)0x0081收到好友状态改变消息(服务器发起)本篇文章来源于中国协议分析网|篇二:qq协议整理文档qq协议整理qq协议整理文档的内容主要来自网络资料,特别感谢致力于qq协议试探分析的朋友们。本文档整理有关qq的命令,数据包格式等。由于qq协议未对外公开,采用了信息加密技术以及随着版本升级总有所改动(大体上不会有太多变化),本文档仅供参考!一qq应用数据包头:qq数据报头(除掉udp或tcp等基本网络协议头,需要注意:tcp传输的qq数据包,需要去掉包头2个字节,此两个字节代表数据包携带应用层数据的长度,下列所有qq包均指udp数据包应用层或者tcp数据包应用层去

6、掉首部两个字节后的数据):所有qq包的前7个字节是包头,包头可以识别qq包的内容。包头的格式为:(单位字节)012345678(b)表一:标准头格式第字节:qq包标识:0x02。(令牌请求报为0x16,下面所有数据报指0x02标识的报)第字节:发送者标识。如果是0x010x00,表明是由服务器发送。客户端的标识与所使用的使用的qq版本有关,例如qq20xx(0808)的标识为0x0a0x1d。具体的协议的格式与这个字段所标识的客户端版本有关。第字节:命令编号。具体的命令编号含义在下面会给出。如果这个字段是0x000x01,那么这是一个注销请求包。如果这个字段是0x000x22,而发送者标识是0

7、x010x00,那么这是一个登录应答包。如果这个字段是0x000x22,而发送者标识是其它(例如0x0a0x1d),那么这是一个登录请求包。第-6字节:命令序列号。客户端和服务器都有各自的当前发送序列号。每初始发出一个指令的时候,使用当前的序列号,然后把当前序列号加一,如果超过0xFFFF,就绕回。如果是响应对方发出的命令,则使用这个命令的序列号。例如,客户端当前的序列号为0x1110,它向服务发送一个0x0016命令,它使用0x1110这个序列号,服务器收到以后,返回一个序列号为0x1110的0x0016命令响应。下一次,客户端又发送一个0x0026命令,这一次它使用加一了的序列号0x111

8、1,服务器也响应0x1111序列号的一个0x0026命令响应。如果这是服务器要向客户端发送0x0017命令,它使用它自己的当前序列号,比如说0x2220,客户端收到以后,也响应一个序列号为0x2220的0x0017命令应答。我们可以通过序列号来判断发出的指令是否已经得到了应答,如果没有,可以重发。服务器对收到的命令的序列号顺序没有要求。服务器也不会一定按照发出的顺序给予应答。因此qq的数据包头可以如下定义:(下列数据结构不能数据对齐)#pragmapack(1)/*qq数据包固定头部*/typedefstructqq_headunsignedcharhflags;unsignedshortve

9、rsion;unsignedshortcmd;unsignedshortsequence;/*固定数据0x02(十六进制)*/*使用的协议版本号,网络字节序*/*命令,表示本数据包的性质,网络字节序*/*序列号,参照的tcp方式,具体含义间上文,网络字节序*/qq_head_t;/*udp数据包头部*/typedefqq_head_tudp_qq_head_t;/*tcp数据包头部*/typedef(qq用的是什么协议)structtcp_qq_headunsignedshortpacklen;qq_head_thead;/*/tcp_qq_head_t;#pragmapack()包尾:所有的

10、包都以0x03作为包尾。在包头和包尾中间的包数据则不同类型的包有所不同。qq的命令:(本地字节序)qq命令字,即qq报头数据结构中的cmd项,位于数据报头的3-4两字节,是一系列的表示但前数据包内容作用的标识。在本文中用枚举的方式把网络上已经分析出来的部分命令列举如下:typedefenumqq_cmd_logout=0x0001,/*注销登录*/*在线保持信息*/*更换用户登录*/*更新用户信息*/*搜索用户*/*获取用户信息*/*不需认证方式添加好友*/qq_cmd_keep_aliVe=0x0002,qq_cmd_Reg_new_id_2=0x0003,qq_cmd_update_inF

11、o=0x0004,qq_cmd_seaRch_useR=0x0005,qq_cmd_get_useR_inFo=0x0006,qq_cmd_del_FRiend=0x000a,qq_cmd_add_FRiend_wo_auth=0x0009,qq_cmd_buddy_auth=0x000b,qq_cmd_Reg_new_id_1=0x0011,qq_cmd_ack_sys_msg=0x0012,qq_cmd_send_im=0x0016,qq_cmd_RecV_im=0x0017,qq_cmd_login=0x0022,/*删除好友*/*需要认证的方式添加好友*/*设置(隐身、示忙等)状态*/

12、*注册新id*/*确认收到系统消息*/qq_cmd_change_online_status=0x000d,/*发送消息*/*收到消息(服务器发起)*/*在对方好友列表上删除自己*/*获取好友清单*/*获取在线好友*/*登录*/qq_cmd_RemoVe_selF=0x001c,qq_cmd_get_FRiends_list=0x0026,qq_cmd_get_FRiends_online=0x0027,qq_cmd_gRoup_cmd=0x0030,qq_cmd_RecV_msg_sys=0x0080,qq_cmd_t;/*群操作指令*/*收到系统消息(服务器发起)*/qq_cmd_RecV

13、_msg_FRiend_change_status=0x0081,/*收到好友状态改变消息*/上面的命令对应解释的正确与否,因环境、时间、技术等原因没有进行逐个证实。但是重要的命令:注销,登录,收发消息四个命令是确认的。在这再次感谢网络上未谋面的朋友的努力分析。qq内容加密算法qq的消息(本文中所有的qq消息均指聊天内容,其他如视频,文件传输等不在列)采用tea。tea(tinyencryptionalgorithm)加密算法是在1994年由英国剑桥大学的davidwheeler和Rogerneedham所发明的一种加密方法。大概来说,它是使用128bit密钥加密64bit数据产生64bit输

14、出的一种算法。这种算法的可靠性是通过加密轮数而不是算法的复杂度来保证的。具体的算法可以参考:/retype/zoom/d343d14133687e21af45a917pn=4&x=0&y=0&raww=642&rawh=269&o=jpg_6_0_&type=pic&aimh=201.12149532710282&md5sum=cf48530d7ffe75d7a14f7d19fb452407&sign=5cff4d1f57&zoom=&png=167-444&jpg=5101-43205target=_blank点此查看012345678(b)表二:解码后登录成功应答协议,本数据报使用密码两次

15、md5解码响应方:服务器样本成功登录的样本:(红色密钥部分使用qq密码的md5的md5作为密钥解密16字节原内容得到)000:0061425845556b58(00登录成功,响应报第一字节表示登录结果,下文将给出其他标识)008:7a425736786e4941(登录成功,后续通讯内容的密钥,c2s和s2c均用此密钥,失败则不同)016:5901825d9040e7a7(登录的qq号码)024:e30Fa07F0000011F(前四个字节为客户端ip,后两个字节为对应端口)032:403F5122da030a5b040:8350d29155aeFc3a(其它一些信息,不太关注)048:5bd4

16、e93197c58513056:646b300aceF1333d064:8dc2cF1F403dacF9072:8e1F4000001cbb67080:00cb49e6FFb6Fb01088:97416e9630487648096:eFb81d1e5aeaebe9104:ab004a23d2000000112:0000000000000000120:0040e7a7e33F5122128:9100000000000000136:00本回应数据中重要数据就是后续通讯的解密密钥。密钥是一个由字符数字组成,例如上面的密钥即是:abxeukxzbw6xnia。登录请求的其他一些相应标识:01022、注

17、销命令:0x01客户端(连续发送4次),此命令表明qq下线,主要关注的是样本中密码的md5的md5,不过这一点需要验证!转向,01后面紧跟4字节qq号,4字节的新服务器ip和2字节的新服务端口密码错误,02后跟错误提示信息我们可以通过使用01标识让qq不停转向,转到一个假地址上而阻止qq登录,来阻断qq通讯。篇三:qq协议分析qq协议分析一、概述qq是目前流行的及时聊天工具,qq协议非常庞大,版本升级比较频繁,而且与多数软件不同的是,它的客户端升级往往伴随着协议响应的改变。本文是基于qq20xx版的qq协议分析。qq消息是加密的,qq的加密解密用的是tea算法,几乎无法破解qq消息内容。但是可

18、以根据qq包头和协议格式识别qq数据。qq支持tcp和udp传输,经过观察基于udp可以用端口再根据协议特征方式识别;而基于tcp的http方式可以根据协议识别qq数据。二、qq协议分析及数据特征qq协议有多种包头,每种用途分别代表一类用途的包,但不是所有的包都有包尾,以下是一些存在的包头包尾的格式:表1根据抓包分析,qq的udp数据的服务器端口号总是在8000端口,而且udp数据符合上述表格描述。下面是2类udp数据包,其中服务器端的端口号为8000。例1:001b0cce5bc9001d729a8e1d0800450000670f8700008011eddac0a822343a3d200b

19、0fa01f4000539db6020xx0000038053de25400006a23010012378021ae29fe9f91b023488d12398e5fe976148069041cf169706bcf04716692e6ea24416302543aaae8175e6b27a3992a1829e5fb516493d703例2:001b0cce5bc9001d729a8e1d0800450000590fc100008011c19ac0a8223477930ec917711f4000455f7a035032b0000000010000000000000000000000000000000

20、0000000000000000000000000000000000100001237000000000000000000000500053de254在用ethereal抓包过程中发现有些8000端口的udp数据包,有0x02包头但没有0x03包尾,但它确实属于qq数据,不知道是什么原因。根据观察,qq除了使用udp通讯,还与tcpF服务器通讯,而且与tcpF服务器的通讯量远远大于udp通讯量。文本聊天就是这一类型,下面就简要介绍tcpF协议。tcpF(textchattingprotocolFamily)文本聊天协议族,它主要支持与其它qq端进行文字聊天,tcpF是建立在udp协议上的协议族

21、。tcpF格式为:包头+数据+包尾。包头:所有的tcpF包的前七个字节是包头,包头可是识别包的内容,包头格式为:第0个字节:tcpF包标示:0x02。第1-2个字节:发送者标识,如果是0x010x00,表明是由服务器发送,客户端的标识与所使用的qq版本有关。第3-4个字节:命令编号。第5-6个字节:命令序列号。包尾:所有的tcpF包都以0x03作为包尾。在包头和包尾中间的数据分为以下五类:登录请求包(lip,loginpacket),它是由客户端向服务器发出登录请求的数据包。登录应答包(lRp,loginReplypacket),它是由服务器响应客户端登录请求的数据包。注销请求包(lop,lo

22、goutpacket),它是由客户端向服务器发出注销登录请求的数据包,服务器对这个包不作应答。客户端其它包(csp,clientsentpacket),它是由客户端向服务器发送的其它包。服务器其它包(ssp,serversentpacket),它是由服务器向客户端发送的其它包。具体tcFp包结构请参阅qq协议分析之tcpF包结构.htm文档。用ethereal抓包发现存在大量tcpF协议格式的qq数据走的是80端口的http方式。下面是一个http的tcp流的16进制数据:003e02123700912664053de25432b8c2bfa4d2654be98ed54f235174f6645

23、5d257d3d964787777efedcc7867db00de12a012b182961c8bc0c853a94d8303下面介绍qq传送文件数据包。文件传输是建立tcp连接之上的,其格式是包头为0x04包尾为0x03,其包的格式如表1所述。下面是用ethereal软件抓取的文件发送包的某个部分:0412*000000000000383a4ca08e74d7b43ad1c7678fc416699f44f8aee8685ac2ca0cbf4886262c85b8abaed2b1f9a86bb892a3a9bd5138cad7aecec3f064c4a8dba59bdfc19fcd653541

24、0d128c2adc250fa164834eb992915d03还有一种文件传输情况不符合上述规律,在传输文件的包中前几个字节是:041221或者是270000000014000000000105(需要记录这组会话的ip地址和端口号,之后这组会话之间的数据就是qq文件传输数据)三、总结综上说述,qq数据具有以下特征,udp数据具有固定端口8000,并且数据格式如上述表1中讲述。tcp数据有两类一种是是基于http的tcFp包格式的文本聊天数据,其特征可根据tcpF包的包头和包尾特征识别,另一种是文件传输,可根据数据包的特征识别数据。以上分析包含qq文本聊天、登陆、登出、文件传输等大部分qq数据,qq还有一些未知的协议无法得知。此外由于版本问题,不同qq版本可能qq数据有所不同。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1