互联网中即时消息业务的分析和识别 毕业设计(论文).doc

上传人:小小飞 文档编号:3907772 上传时间:2019-10-10 格式:DOC 页数:48 大小:684.52KB
返回 下载 相关 举报
互联网中即时消息业务的分析和识别 毕业设计(论文).doc_第1页
第1页 / 共48页
互联网中即时消息业务的分析和识别 毕业设计(论文).doc_第2页
第2页 / 共48页
互联网中即时消息业务的分析和识别 毕业设计(论文).doc_第3页
第3页 / 共48页
互联网中即时消息业务的分析和识别 毕业设计(论文).doc_第4页
第4页 / 共48页
互联网中即时消息业务的分析和识别 毕业设计(论文).doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《互联网中即时消息业务的分析和识别 毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《互联网中即时消息业务的分析和识别 毕业设计(论文).doc(48页珍藏版)》请在三一文库上搜索。

1、互联网中即时消息业务的分析和识别互联网中即时消息业务的分析和识别 摘摘 要要 随着互联网技术的飞速发展,我们的社会正在经历一场信息化的革命,这场革命 改变了人们以往的通信方式,给我们的生活带来了新体验。而即时消息业务(IM)是 这场革命的重要产物之一。即时消息业务作为一种用户之间进行实时信息传递的主要 手段,除了能够提供最初的纯文本交流服务,随着宽带的普及,也开始为人们提供了 视频、音频交流等融合宽带元素的服务。 然而,由于IM 厂商各自为战,为了保证自身IM 软件的用户群数量,各种即时消 息业务一直没有形成被广泛认可的规范。每种即时通的协议规范都各具特点,对各类 即时消息业务的通信机制,数据

2、传输格式等进行研究分析,比较它们的通信格式的不 同之处,有利于我们寻求一个更好的即时消息通信协议,同样有助于对互联网中不同 即时消息业务的数据包进行识别。 本文主要对在中国应用最广泛的三种即时消息业务QQ、MSN和飞信的协议特征进行 了研究。由于他们使用的协议主要是基于UDP或者TCP协议的,因此,论文开始介绍了 TCP/IP协议;另外,介绍了在互联中进行抓包解包的协议分析工具Wireshark。但最主 要的内容是:介绍了QQ的协议,加密算法,数据包格式以及解析了QQ的登陆、发送接 收消息流程等;介绍了 MSN和飞信,主要阐述了它们的通信架构,数据通信格式,描 述了其从登陆,发起一个聊天到关闭

3、聊天窗口的过程。 关键字关键字 即时消息 QQ MSN 飞信 协议分析 The analysis and recognition of IM on the Internet ABSTRACT With the rapid development of the internet technology, our society is undergoing an information revolution. This revolution has changed the way of the communication between people, and brought new experie

4、nces to our life .Instant Messaging (IM) has been one of the important products of this revolution. As a main approach of live information transmission between users, Instant Messaging (IM) is able to provide the initial service of text intercommunication, and as the wide use of broadband, it as wel

5、l has started the services that comprise the broadband element like video, voice and so on. Nevertheless, as the IM manufacturers fight for themselves, and insure the number of its subscribers, all kinds of Instant Messaging has not formed a unified standard. The protocol standard of each IM has its

6、 own characteristics, the study of telecommunication mechanisms, data transmission format, etc of each kind of Instant Messaging, and the comparison of different kinds of telecommunication format will help us to find a better telecommunication protocol for Instant Messaging, as well as do a favor to

7、 the recognition of data packets of different kinds of IM on the internet. This paper mainly studies the protocol characteristics of QQ, MSN and Fetion, three kinds of the most widely used IMs in China. As the protocols they use are based on UDP or TCP protocol, the paper starts with the introductio

8、n of TCP/IP;In addition, it introduces the protocol analyzing tool Wireshark which capture and unclose data packets on the internet. But the main components are: presenting the protocol, encryption algorithm and data format of QQ, and analyzing the flow of its login, sending and receiving messages;

9、introducing MSN and Fetion, mainly describing their communication frames, data transmission formats and depicting the procedure of firstly logging in , then initiating a chat and closing the chatting window at last. KEY WORDS Instant Messaging QQ MSN Fetion protocol analysis 目目 录录 第一章 绪论.1 1.1 研究背景

10、.1 1.2 论文组织结构 .1 第二章 计算机网络体系概述.2 2.1 TCP/IP 协议架构 2 2.2 TCP 和 UDP 协议 3 第三章 即时通信软件简介.4 3.1 即时通信软件分类4 3.2 QQ、MSN 和飞信的特点 4 3.3 即时通信软件的通信架构4 第四章 WIRESHARK 介绍5 第五章 QQ 协议分析5 5.1 QQ 通信协议概述 5 5.1.1 加密算法.5 5.1.2 通信协议6 5.1.3 数据通信格式7 5.2 QQ 数据包的采集与分析 9 5.2.1 QQ2008 登陆数据包的采集与分析.9 5.2.2 QQ2009 数据包的采集与分析.14 第六章 MS

11、N 协议分析21 6.1 MSN 协议概述21 6.2 MSN 通信机制 21 6.3 MSN 常用命令 23 6.4 MSN 数据包采集与分析 24 第七章 飞信协议分析.28 7.1 飞信协议概述28 7.2 飞信通信机制 .28 7.3 飞信数据包采集与分析 .33 第八章 QQ、MSN 及飞信通信的比较38 第九章 QQ、MSN 及飞信数据包的识别39 第十章 编程识别 QQ 数据包.40 第十一章 总结与展望.42 1 第一章第一章 绪论绪论 1.1 研究背景 近年来,随着我们的社会步入信息时代,人们对信息交流的要求越来越高,即时 消息业务(IM)应运而生并且不断发展,为人们日常交流

12、提供了一个更加便利、高效、 安全的平台。即时消息业务也称即时通讯(Instant Messaging , IM),是指能够利用网 络即时发送和接收消息、文件、语音和视频的业务1,是通过Internet 即时和他人取 得联系的一种通讯方式, 使用即时通讯软件的用户可以通过它查看其联系人是否连接 Intenet 上, 并能给在线或者离线的用户即时地发送简单的文字消息。随着宽带的普 及和其他网络信息技术的提升,即时消息业务已经从最初只提供文字消息交流的服务 演变成为能够融合视频、音频交流等宽带应用元素,集原有的消息传送、文件传输、 语音聊天以及电子邮件、博客、游戏、搜索、音乐和电视等多种功能为一体的

13、综合通 信服务,得到越来越多人的青睐和使用, 并逐渐代替电子邮件成为最为普遍和流行的 Internet服务模式。截至2009年底,我国即时通讯用户规模已突破2.77亿,同比增长 23.7%。 目前人们熟知的IM,既有腾讯QQ、微软MSN等综合类即时通信工具,也有网易泡泡、 新浪UC、百度Hi、阿里旺旺、淘宝旺旺、盛大圈圈等垂直即时通信工具,还包括中国 移动飞信、中国电信天翼Live、Skype等跨平台、跨网络即时通信工具。然而,由于各 个即时通厂商为了各自利益,保障各自的用户数量,其使用的协议都是私有的,未经 过标准化,不同即时通软件的用户之间进行互通交流目前还未完全实现。因此,对不 同的即时

14、消息业务的协议进行分析,比较出它们所采用的通信机制之间的差别,得出 各自的优缺点,有利于各个即时消息业务之间的互操作性的实现,为互联网中不同即 时消息的数据包的识别奠定基础, 并且,还将对研究出一个更好的即时通信协议有着重 要的作用,。 本文将对腾讯QQ、MSN以及飞信进行详细地解析。腾讯QQ,原称腾讯OICQ,是腾讯公 司于1999年2月11日推出的一款免费的多平台即时通信软件,支持文字、语音和视频聊 天,还附带有邮箱、游戏等服务。目前,腾讯QQ、手机QQ均为中国最多人使用的即时 通信软件,均占据国内个人电脑和手机即时通信市场第一。MSN Messenger是由微软于 1999年7月推出的网

15、络即时信息客户程序,可以说是国外IM领域最为流行的IM客户端之 一,也是4大顶级个人即时通讯工具之一,而其在中国的市场份额也一直处于前列,仅 次于QQ。飞信Fetion,是中国移动推出的“综合通信服务” ,即融合语音(IVR) 、 GPRS、短信等多种通信方式,覆盖三种不同形态(完全实时、准实时和非实时)的客 户通信需求,实现互联网和移动网间的无缝通信服务。根据中国互联网发展报告 2009表明,截止2008 年12 月,国内即时通信软件有效使用时间排行榜前三位的依 次是:腾讯QQ,MSN 和飞信,其中腾讯QQ 达到87.1%,占据绝对优势。 1.21.2 论文组织结构论文组织结构 本文的第一章

16、是绪论,主要介绍了研究背景以及给出了论文组织结构。第二章介绍 2 了计算机网络方面的理论知识,主要从TCP/IP和TCP、UDP两方面展开。第三章简单给 出了即时通信软件的分类,概括了本文主要研究的三类即时消息业务QQ、MSN、飞信的 外部特点,最后给出了即时通信软件的通信架构。本文第四章对协议分析工具 Wireshark作了简单的介绍。第五章的内容是对QQ的协议进行了分析,首先对QQ的加密 算法、通信协议、数据通信格式进行概括,然后具体对QQ2008以及QQ2009进行抓包分 析。第六章给出了MSN的通信机制、常用命令,并对其数据包作展开分析。第七章同样 介绍了飞信的协议、通信机制以及对其数

17、据包作采集并分析。第八章根据上述分析的 结果对QQ、MSN、信的通信作比较。第九章为初探QQ、MSN、飞信数据包的识别方法。 第十章对本次研究作了总结,并提出对今后在即时消息业务方面的研究展望。 第二章第二章 计算机网络体系概述计算机网络体系概述 2.12.1 TCP/IPTCP/IP协议架构协议架构 TCP/IP 协议(Transfer ControlnProtocol/Internet Protocol)叫做传输控制/网 际协议,又叫网络通讯协议,是网络中使用的基本的通信协议,是 Internet 国际互联 网络的基础。确切地说,TCP/IP 协议是一组包括 TCP 协议和 IP 协议,

18、UDP(User Datagram Protocol)协议、 ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 传统的开放式系统互连参考模型,即 OSI 的七层参考模型是一种通信协议的 7 层 抽象的参考模型, 这 7 层分别是:物理层、数据链路层、网路层、传输层、话路层、表 示层和应用层。其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的 层次上相互通信。而 TCP/IP 通讯协议采用了 4 层的层级结构,每一层都呼叫它的下一 层所提供的网络来完成自己的需求。这 4 层分别为: 应用层:应用层是所有用户面向的应用程序的统称,

19、应用程序通过这一层访问网 络,并通过这一层进行相互沟通,许多为我们所熟知的基于 Internet 的应用所使用的 协议如进行万维网访问用到的 HTTP 协议,电子邮件传输用到的 SMTP 协议、文件传输 协议 FTP、域名解析协议 DNS、网络远程访问协议 Telnet 等都是属于应用层的。 传输层:此层的主要功能是提供应用程序间的通信,并提供了节点间的数据传送 服务。传输协议的选择根据数据传输方式而定,如传输控制协议 TCP、用户数据报协议 UDP 等,TCP 和 UDP 给数据包加入传输数据并把它传输到下一层中,这一层负责传送数 据,并且确定数据已被送达并接收。 网际层:网际层是 TCP/

20、IP 协议族中非常关键的一层,主要定义了 IP 地址格式, 从而能够使得不同应用类型的数据在 Internet 上通畅地传输,其还负责将数据包封装 成 Internet 数据包,并运行必要的路由算法,让每一块数据包都能够到达目的主机 (但不检查是否被正确接收),网际协议 IP、地址解析协议 ARP、网际控制消息 ICMP 以及互联组管理协议 IGMP 都是这一层的协议。 网络接口层:网络接口层是 TCP/IP 协议模型的基层,对实际的网络媒体进行管理, 定义如何使用实际网络(如 Ethernet、Serial Line 等)来传送数据,并负责数据帧的 3 发送和接收,帧是独立的网络信息传输单元

21、。网络接口层将帧放在网上,或从网上将 帧取下来,抽出 IP 数据包,交给 IP 层。 图 2-1 OSI 模型与 TCP/IP 模型的对应关系及各层的协议数据单元 2.22.2 TCPTCP和和UDPUDP协议协议 TCP和UDP是位于TCP/IP协议体系架构中传输层的协议,传输层为终端主机提供端 到端的连接,以及流量控制(由窗口机制实现)、可靠性(有序列号和确认技术实现) 、支持全双工传输等等。虽然TCP、UDP都使用相同的网际协议IP,但是它们却为应用层 提供完全不同的服务。 UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后,不 需要给出任何确认。UDP报文没有可靠

22、性保证和顺序保证字段,流量控制字段等。虽然 UDP不提供可靠交付,但在某些情况下,UDP却是一种最有效的工作方式正因为UDP协议 较少的控制选项,在数据传输过程中,延迟较小,数据传输效率较高,适合于对可靠 性要求并不高的应用程序,或者可以保障可靠性的应用程序;UDP协议也可以用于传输 链路可靠的网络。 TCP则是提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后 要释放连接。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用 比特流通信,即数据被作为无结构的字节流。通过每个TCP传输的字段指定顺序号,以 获得可靠性。TCP不提供广播或多播服务。由于TCP要提供可靠的、

23、面向连接的运输服 务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。 这不仅是协议数据单元的首部增大很多,还要占用许多的处理机资源。 一般来说,TCP 对应的是可靠性要求高的应用,而 UDP 对应的则是可靠性要求低、 传输经济的应用。TCP 支持的应用协议主要有:Telnet(网络远程访问协议)、 FTP(文件传输协议)、SMTP(简单电子邮件传输协议)等;UDP 支持的应用层协议主 要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、 TFTP(通用文件传输协议)等。 4 TCP 和 UDP 服务通常有一个客户/服务器的关系,例如,一

24、个 Telnet 服务进程开始 在系统上处于空闲状态,等待着连接。用户使用 Telnet 客户程序与服务进程建立一个 连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出 响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。 TCP 或 UDP 连接唯一地使用每个信息中的如下四项进行两个系统间的多重 Telnet 连接的确认和协调: 源 IP 地址即发送包的 IP 地址;目的 IP 地址即接收包的 IP 地址; 源端口即源系统上的连接的端口;目的端口即目的系统上的连接的端口。 端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对 应一个 16 比

25、特的数。服务进程通常使用一个固定的端口,因为在建立与特定的主机或 服务的连接时,需要这些地址和目的地址进行通讯2。 第三章第三章 即时通信软件简介即时通信软件简介 3.13.1 即时通信软件分类即时通信软件分类 常规的即时通讯软件分为两类,一类个人应用的个人即时通讯,QQ 和 MSN 主要是 个人应用;另一类是企业即时通讯,企业即时通讯,如通软联合 GoCom、腾讯 RTX、恒 创 ActiveMessenger 等都是一种是以企业内部办公为主,建立员工交流平台。 3.23.2 QQQQ、MSNMSN 和飞信的特点和飞信的特点 腾讯 QQ 拥有庞大的用户数量,它的功能完善而丰富,操作简单,娱乐

26、性强,支持 实时的音视频聊天,大文件传输,并且提供强大的群功能,以及多种增值功能如在线 游戏。 MSN 基于 Microsoft 高级技术,可使用户之间更有效地利用 Web 进行通信。和 QQ 不同,MSN 的特色之处在于它的严肃和保守性,这使得它更受企业用户所青睐,同时这 也使得它的用户群更集中在公司的白领职员中,而这也是 MSN 的市场占有率始终停步 不前无法超越 QQ 的主要原因。 飞信,是中国移动开发的仅限中国移动手机用户使用的即时通讯软件,利用移动 GSM 网络,用户不但可以免费从 PC 给手机发短信,而且不受任何限制,能够随时随地 与好友开始语聊,另外飞信还实现了无缝链接的多端信息

27、接收。 3.33.3 即时通信软件的通信架构即时通信软件的通信架构 即时通信软件一般有两种模式:客户/服务器模式, 即发信端用户和收信端用户必 须通过服务器来交流;客户/客户模式, 即服务器给每对客户端建立一个TCP通道, 他们 的交流在这个之上进行, 无须通过服务器4。QQ、MSN、ICQ、AIM和Yahoo Messenger 这些主流软件使用的是客户/服务器模式, 一般由即时通信软件服务提供商提供一组 服务器来完成用户登录、转发消息、显示其他用户的出席信息以及语音服务等功能, 并且在此模式下,文本消息必须通过服务器才能从一个客户端传到另一个客户端,而 且服务器的端口一般都是固定端口。服务

28、器通过提供固定的服务端口被动式地与客户 端进行通信, 起到消息中转的作用。 对于客户/服务器模式,目前有两种普遍的系统架构:对称型和非对称型架构。对 5 称型架构指的的所有服务器提供服务所需的所有功能,而非对称架构则由不同服务器 担任不同的角色,共同来完成所有功能5。对于对称型架构的IM 系统,客户端不需要 区分服务器,只需连接到任一台服务器就可以完成所有需求。而对于非对称IM 系统而 言,不同的服务器承担不同的角色,根据角色的不同分别完成诸如转发消息、用户登 录、语言服务等各种功能。 第四章第四章 WiresharkWireshark 介绍介绍 Wireshark 是重要的网络分析工具之一,

29、它可以捕捉网络中的数据,并为用户提供 关于网络和上层协议的各种信息。网络管理员使用 Wireshark 来检测网络问题,网络 安全工程师使用 Wireshark 来检查资讯安全相关问题,开发者使用 Wireshark 来为新 的通讯协定除错,普通使用者使用 Wireshark 来学习网络协定的相关知识。 下面是用 Wireshark 抓包的界面: 图 4-1Wireshark 抓包示意 第五章 QQ 协议分析 5.15.1 QQQQ 通信协议概述通信协议概述 5.1.15.1.1 加密算法加密算法 QQ 基本协议目前为止用了两种公开的加密算法:十六轮的 TEA(Tiny Encryption

30、Algorithm)和 MD5。 TEA 是一种小型的可逆加密算法,但是腾讯使用了独特的填充反馈机制。如果整个 明文不是 8 的倍数,还要在头部用 16 字节的随机数填充,然后在尾部补 0,直到是 8 的倍数。QQ 数据明文被分成 N 个 8 字节的明文单元,用 TEA 以 16 字节的密钥依次加密 每个单元产生 8 字节的密文,密文再参与下一单元的加密。由于头部填充了随机字节, 6 所以即使是同一明文的密文,也会因随机数的不同以及反馈机制而不同。推荐的 TEA 算法应该是 32 轮,但是 QQ 目前就使用了 16 轮,TEA 是通过增加加密算法的轮数来 提高安全性的, 不是使用复杂的算法。

31、MD5 即 Message-Digest Algorithm 5(信息-摘要算法 5) ,用于确保信息传输完 整一致。是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法) 。 QQ 的包一般都是加密的(包头包尾除外),但是有个别包是不加密的,QQ 使用 TCP 协议进行文件传送的时候大多没有加密。以后如果不做特别说明,则默认这个包是 需要加密的。此外,用什么密钥加密也有不同,不过基本上都是用会话密钥加密。这 里要注意一下,有时候你收到的包可能不是用会话密钥加密的,比如离线的消息。所 以服务器在你下次登录的时候,会把你还没收到过的消息用密码密钥加密再传给你。 这是一种特殊的情况。 以下是对主

32、要用到的各种密钥的简单解释: 表 5-1 不同密钥名词解释 名称描述 临时密钥 即可以在数据包中直接提取的加密密钥,一般是 数据段的前 16Bytes。 密码密钥 先把 QQ 密码的字符串用 MD5 加密得到一个 16 字 节的 Byte 数组,再把此数组作为明文用 MD5 加密, 之后得到的是一个 16 字节的 Byte 数组。 会话密钥 登录认证成功后,协商出的密钥(16Bytes),用 于后续报文解密使用。 5.1.25.1.2 通信协议通信协议 QQ 基本通信协议支持 TCP 以及 UDP 两种方式,而且两种方式基本数据结构大同小 异,只是 TCP 多了一个数据包长度描述的头部信息。一

33、般使用的是 UDP 协议。QQ 基本 协议采用应答机制,也就是说发送的每一个包服务器都会回应对应的包的执行结果, 服务器发送的每一个包你也要回应(登出包除外,它没回应。),请求和响应通过相 同的序列号来进行配对(请求代码也应该相同)。而且每种请求的发起方都是相同的。 这也许是因为 UDP 协议的不可靠性。由此,QQ 支持 UDP 和 TCP 登录(如果使用 HTTP 代理,则相当于 TCP 登录),默认是 UDP 登录。UDP 登录端口服务器为 8000,本地端 口一般是从 4000 开始选择,如果该端口已经被占用,则加 1 再测试,一直测试到一个 没有被占用的端口。TCP 登录服务器一般是

34、80 或者 443 端口,本地端口选择方式和 UDP 一样。另外,手机 QQ 用户的登录默认为 TCP14000 端口。这些登录方式登录设置里 面可以自由选择。无论哪种方式登录,其登录流程和数据包格式都是一样。可以在登 录设置中选择协议登陆。 基于上述的 TCP/UDP 的基本通信协议,我们尝试把 QQ 的协议进行分类: 文字聊天协议族(TCPF, Text Chatting Protocol Family):它主要支持与其 它 QQ 客户端进行文字聊天。TCPF 是建立在 UDP 协议之上。UDP 数据包中的第一个字符 7 02 为这个协议族的标识。TCPF 的服务器使用 8000 号端口,

35、腾讯的 QQ 客户端软件一般 从 4000 号端口开始尝试使用,试验发现如果一台 PC 上有两个 QQ 登录则一个使用 4000 端口号,另一个使用 4001 端口号。但实际上,对客户端使用的端口号并没有限制。目 前的研究集中在 TCPF 上。 其它未知可能存在的协议族:我们观察到 QQ 除了与 TCPF 服务器通信以外,还有 与其它的服务器使用 UDP 进行通信。目前我们观察到的服务器为 218.17.217.111 : 8000,客户端使用与 TCPF 不同的端口,观察到的从客户端发出的包以 06 开头,而服 务器返回的包则以 01 开头,其具体作用未知。我们注意到的一个现象是,如果选择离

36、 线后重新上线,那么在发出登录包之前,这个通讯已经开始。我们暂时把它命名为数 据传输协议族(DTPF,Data Transfer Protocol Family)。最新的研究发现,它传递 的是 QQ Show 的图片数据。 语音、视频聊天:目前还没有开始分析,尚未知道是使用 UDP 还是 TCP 协议。 聊天室:没有分析,应该是 TCP 协议 随着对这些协议分析的开始,我们会给它们更精细的划分和恰当的命名6。 5.1.35.1.3 数据通信格式数据通信格式 QQ 使用的主要协议为 TCPF,其工作模式为请求响应模式,就是客户端发出一个请 求时,服务器会给出一个相应,而反过来,当服务器向客户端发

37、送某种信息时,客户 端也同样会给出一定的响应。注意,无论哪一方,根据不同的操作结果,响应可能不 同。相对应的请求和响应是通过序列号和命令号来标识(其序列号一样,命令号也一 样) 。 基于 TCPF 协议的 QQ 数据包其标志为包的头字节为 0x02,包尾为 0x03,以下分析均 基于 TCPF 包。TCPF 包格式如下: 图 5-1 客户端报文格式 8 图 5-2 服务器报文格式 第 0 字节:标识域也就是头字节,为 0x02 第 1-2 字节:版本域,表示了这个包从何处来,主要用来标识客户端版本,如果 是 0x0100,表明是由服务器发送; 第 3-4 字节:命令域,指示当前的数据包的功用。

38、如其值为 0x0016,而版本号不是 0x0100,表示这是一个由客户端发起的发送信息的数据包;而当其版本号为 0x0100, 则表示这是一个发送信息的服务器响应包。 第 5-6 字节:序列号域,原则是保证短期内这个序号不要重复。客户端和服务器 都有各自的当前的序列号。处理的时候都是每发送一个当前的数据包,使用当前的序 列号,然后再将序列号加 1,一般递增到最大再 0xFFFF 再归 0。另外,如果是一对请 求响应的数据包,则它们的序列号相同。例如,例如客户向服务器发送命令 0X0091, 包序列号为 0X0410,那么服务器返回命令为 0X0091、包序列号为 0X0410 的包。下一 次客

39、户又发了一个命令为 0X00BA、包序列号为 0X0410+1,即 0X0041 的包,服务器返 回命令为 0X00BA、包序列号为 0X0041 的包的处理结果。如果这是服务器要向客户端发 送 0x0017 命令, 它使用它自己的当前序列号,比如说 0x2220,客户端收到以后,也 响应一个序列号为 0x2220 的 0x0017 命令应答。 第 7-10 字节:用户名域,四字节,即客户端的 QQ 号,若请求方为客户端,则存 在此字段,否则无。 最后一字节:包尾标志,为 0x03。 在包头和包尾之间的包数据根据不同类型的包而不同。 QQ 所使用的主要命令字段如下(随着 QQ 版本的升级,其所

40、使用的命令字段也发生 一定的改变): 表 5-2 QQ 所使用的主要命令字段 1)通用常量,操作成功 0x00 2)对方已经是我的好友 (byte)0x99 3)请求登录令牌成功 0x00 4)登录信息-重定向 0x01 2)登录信息-登录失败 0x05 3)改变在线状态成功 0x30 9 4)发送认证消息成功 0x30 5)申请中转服务器,重定向 0x0001 6)申请中转服务器成功 0x0000 7)命令常量 - 登出 0x0001 8)命令常量 - 保持在线状态 0x0002 9)命令常量 - 修改自己的信息 0x0004 10)命令常量 - 查找用户 0x0005 11)命令常量 -

41、得到好友信息 0x0006 12)命令常量 - 添加一个好友 0x0009 13)命令常量 - 删除一个好友 0x000A 14)命令常量 - 发送验证信息 0x000B 15)命令常量 - 改变自己的在线状态 0x000D 16)命令常量 - 确认收到了系统消息 0x0012 17)命令常量 - 发送消息 0x0016 18)命令常量 - 接收消息 0x0017 19)命令常量 - 把自己从对方好友名单中删除 0x001C 20)命令常量 - 登陆 0x0022 21)命令常量 - 得到好友列表 0x0026 22)命令常量 - 得到在线好友列表 0x0027 23)命令常量 - 发送短消息

42、 0x002D 24)命令常量 - 群相关命令 0x0030 25)命令常量 - 好友相关数据操作 0x003E 26)命令常量 - 群数据操作命令 0x005F 27)命令常量 - 请求登录令牌 0x0062 28)命令常量 - 用户属性操作 0x0065 29)命令常量 - 临时会话操作 0x0066 30)命令常量 - 个性签名的操作 0x0067 31)命令常量 - 接收到系统消息 0x0080 32)命令常量 - 好友改变状态 0x0081 33)命令常量 - 发送验证消息 0X00A8 5.25.2 QQQQ 数据包的采集与分析数据包的采集与分析 5.2.15.2.1 QQ2008

43、QQ2008 登陆数据包的采集与分析登陆数据包的采集与分析 QQ 通信的登录过程是从用户输入QQ 号码和密码后点击“登录”按钮后开始的, 按命令子域cmd从先到后可以分为以下几个过程:Touch (0x0091)过程、 PreLoginToken(0x0062 )过程、LoginToken (0x00ba)过程、PreSessionKey (0x00dd) 10 过程、SessionKey (0x0022)过程。每个过程又分为请求(由客户端发出)和响应(由 服务器发出)两个子过程。 以下内容解析 QQ2008 整个登陆过程,上述已提及对于客户端发起的数据包包头为 首字节标志 0x02,两字节的

44、版本号,两字节的命令号,两字节的包序号,四字节的 QQ 号,以及包尾的一字节标志 0x03。而服务器发起的数据包除了包头中少了表示 QQ 号的 字节数据,其包头内容和包尾是与对应的客户端数据包是一样的。因此在下面的解析 过程中,只分析 QQ 数据包除包头包尾的部分,也就是数据部分,客户端数据包总第 11 字节开始,服务器数据包从第 7 字节开始。 (1 1)0X00910X0091 命令(客户端发起)命令(客户端发起) 询问服务器本 QQ 号是否可以在这里登录,具体数据部分格式如下。 发送: 第 11-26 字节为随机产生的 16 字节的临时密钥,用于解密本包的密文。 第 27-58 字节为加

45、密的数据。 密文用上述的本包临时密钥解密后为:要是初始客户端尝试连接,则其内容为 15 个 0x00;其他情况下,此 15 字节内容不固定,但经抓到的数据包推测其形式为 00 01 01 00 00 00 02(03) 00 00 00 00 xx xx xx xx。()表示或者,xx 表示某十六进 制数。 返回 1(成功找到接受连接的服务器): 数据内容为 16 字节密文,解密(用客户端发送的临时密钥)后为两字节:00 00 表示服务器成功接受连接,不再重定向。 注:可能会有多个服务器接受连接,客户端一般会选择第一个成功接受的服务器 返回 2(重定向服务器): 数据部分为用客户端发送的临时密

46、钥加密的 32 字节密文,解密后的第 0-10 字节 内容固定为 00 01 01 00 00 00 01 00 00 00 00 ,由此可知,我们可以凭借第 0 和第 1 字节是否全是 0 来判断是否需要重定向新的服务器,全 0 时不需要重定向,全 1 时需 要重定向。第 11-14 字节为服务器分配的新服务器地址,以此提醒客户端重新去这个 服务器试链接(再向新的服务器发送 0X0091 命令)。 (2 2)0X00620X0062 命令(客户端发起)命令(客户端发起) 此过程不加密。具体格式如下。 发送: 数据为 1 字节的 0x00 返回: 第 7-8 字节固定为被称作预先登录令牌的长度

47、:00 18 第 9-32 字节为预先登录令牌的内容。预先登陆令牌将会作为 0x00BA 发送数据包 的内容。 (3 3)0X00BA0X00BA 命令(客户端发起)命令(客户端发起) 这个是请求登录令牌命令,格式如下。 11 发送: 前 16 字节为本包临时密钥,之后的 48 字节数据部分为密文。 用本包临时密钥解密后的明文为: 第 0 字节为令牌长度 0x18, 之后的 24 字节为 0x0062 命令服务器返回的预先登录令牌内容 第 25-28 字节为子命令:03 00 05 00(如果由验证码获得,第一位是 04) 第 29-34 字节固定为 6 个 00。 注:此数据包客户端会重复连

48、续发 3 次。 返回: 服务器会返回 3 次响应。数据部分为 48 字节的密文。 用客户端所使用的临时密钥解密后的内容有所不同,但其形式是一样的,统一为 第 0-3 字节是固定的命令集(03 00 05 00),之后的两字节是令牌长度(00 20),第 6- 37 字节为令牌内容。三次反馈内容的主要区别在于令牌内容的部分,第一次反馈的令牌 内容在之后的 0x00DD 命令中会作为数据的一部分,其它两次的作用未知。 (4 4)OX00DDOX00DD 命令(客户端发起)命令(客户端发起) 这部分应该是 2007B3(或 B2)新增的命令,用于密码验证,比较重要。格式如下: 发送: 数据段为 22

49、4 字节,前 16 字节为临时密钥,后 208 字节为密文内容。 用临时密 钥解密后的内容中含有 0x20 字节的密码验证串,其构成思路为:先用密码密钥 TEA 算 法解这 0x20 字节,解得到 0x14 字节。而这 0x14 字节中的前 0x10 字节,是密码进行 一次 MD5 的结果;后 0x04 字节是随机数。由于在这里是登录过程中第一次使用到密码 密钥,所以推论应该是在进行密码验证。 解密后的整体内容为: 第 0-7 字节:命令集,固定的 第 8 字节:令牌长度 0x20 第 9-40 字节:令牌内容,就是 0x00BA 命令第一次服务器返回的响应内容。 第 41 字节:0x00 分隔符 第 42 字节:密码验证串长度 第 43-74 字节:密码验证串。 第 75 字节:0x00 分隔符 第 76 字节:长度 0x14 第 77-96 字节:未知,不固定 第 97 字节:0x00 分隔符 第 98 字节:剩余字符长度 从第 99-174 字节是 0xBA 客户端发起的密文。 第 175 字节:0x00 分隔符 12 第 176-201 字节:是一段中文编码,大概意思是“上次登录方式为【初始登录方 式】”,没显示全。 返回: 数据段长度为 168 字节,全部为密文。密钥使用密码密钥

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1