1.主界面介绍
随着3G的普及,手机数据业务量(如浏览器,彩信等)的日益增长,对手机侧网络包的分析显得越来越重要。
一般来说,手机数据业务的抓包工具为QXDM,在抓LOG指导里面已经有了详细参数的配置介绍(详情见《IP数据包抓取方法.doc》)。但需要注意的是,在将LOG转化为.pcap文件时,必须保证当前电脑里安装有Ethereal软件,否者PCAPGenerator这个工具不会出现。(针对使用Tools->PCAPGenerator转化.isf文件出错的情况,可以做如下尝试:先使用Tools->ISF File Converter将刚刚保存的.isf文件其转化为.dlf文件,然后使用Tools->PCAPGenerator将.dlf 文件转换成.pcap文件)。
这里主要针对抓到IP包后,怎么样使用Ethereal软件对IP包进行分析,以及一些简单的TCP/IP协议介绍。
直接点击打开.pcap文件,可以看到如下图1所示界面。
图1
中间彩色的区域就是IP数据包。从左到右,字段分别是No.,Time,Source,Destination,Protocol以及Info。IP包是按照流经手机网卡的时间顺序排列的,NO.是标示抓到的IP包是该抓包文件中的第几个,Time则是计算的所有包与第一个包之间的间隔时间,单位毫秒ms。Source和Destination字段分别表示IP包的源地址和目的地址。Protocol显示当前IP包的上层协议,如TCP,UDP,如果应用层协议头也在该IP包中,优先显示应用层协议,如RTSP,HTTP等。
注意中间的彩色显示,不同的颜色代表该IP包中包含了不同内容,这是方便我们对IP 包查看。如上面的大红色,表示的是该数据包损坏,可能是只有一半的内容,也可能是指在该包与其他包的序号不连续(指在协议层不连续),中间可能出现丢包的现象。很多时候,Ethereal是用不同颜色来区分上层协议的不同(注意IP包中必须包含上层协议的包头,才能以该应用的颜色进行标示。因为很多数据包比较大,是通过几个IP包进行传输的,那么就只有第一个包是以上层应用的颜色进行标示,后面的显示为协议层颜色)。如下图2中,可以看到DNS是以淡蓝色标示,ICMP是以黑色标示,TCP的同步(SYN&FIN建立TCP连接的三次握手)以深灰色进行标示,而其它的TCP包则以浅灰色标示,HTTP协议使用绿色进
行标示等等。
图2
留意界面上的Filter框,这个是一个过滤器,可以在界面上过滤掉你不需要查看的包,只留下需要的东西。
图3
该过滤器可以通过协议字段进行过滤,只在界面上显示所有包中的符合过滤条件的数据包,如图3所示。
也可以通过Source,destination字段进行过滤(通常用在IP的杂收模式,因为只要流经网卡的包都会被杂收上来,这样就需要过滤源地址和目的地址为本机地址的数据包)。当需要显示所有的数据包时,点击输入框右侧的Clear,就可以清除当前的过滤条件。
2.数据包协议分析界面
选定你想查看的数据包,然后看中间的协议分析栏,如图4所示。
图4
可以看到整个数据包被分为了几部分,Frame,Raw Packet data,Internet Protocol,Transmission control Protocol以及Hypertext Transfer Protocol。
其中Frame显示的是该包的一些信息,Arrival time为收到包的时间(009-5-13,需要注意的是这个时间是本地时间,即当前手机显示的时间),Frame Number是当前包在整个文件中位置(可以看出这是第13个包),Packet Length是协议中表示该包的长度(522bytes),而Capture Length是实际抓到的包的长度(与Packet Length相同,则表明抓包的时候数据没有丢失,否者认为是破损包,标示为大红色),Protocols in frame是包中包含的协议(这个包网络层协议是IP,传输层是TCP,应用层是HTTP),Coloring Rules指的是在主界面显示颜色是根据那一层协议显示的。
Raw Packet Data为空,按常理来说这个地方应该显示的是物理层协议的详细信息,例如使用Ethereal对电脑的网卡抓包的话,这个地方显示的为Ethernet,解析的是以太网层协议信息,如目的网卡和原网卡的MAC地址之类的物理层信息。因为这里是抓的手机包,不太清楚为什么物理层协议这显示的是空的。还需要跟踪继续对相应的协议进行分析。
Internet Protocol很明显可以看出这里就是对网络层——IP协议的解析。对照图5,对解析出来的每个字段,分析IP层协议。
图5
Version标明当前使用的是IPv4的IP协议(现在使用的趋势是IPv6);Header length标明IP包头的长度(20bytes);Total Length整个IP包长度;Flags标示IP包是否分片(0x04不允许分片);Fragment offset分片偏移(没有偏移);Time to live该包在网络上的生存时长(还能进行64次转发);Protocol该IP包的传输层协议(0x06-tcp,0x11-UDP);Header checksum包头校验码,显示IP协议包头是否正确。Source,Destination显示该IP包的源和目的IP地址。
在协议解析界面下方就是抓到包的十六进制文件显示窗。在协议解析界面点击相应的字段,就可以在十六进制文件显示窗中看到相应的十六进制字符。但注意有些字段占有的空间比较少,如只有一位或者两位,在十六进制字段窗口可能不能单独显示的。如IP包头的首字节45,就代表了两个字段,分别是IP版本号4和IP包头长度20(5*4)。
Transmission control Protocol很明显可以看出这里就是对传输层——TCP协议的解析。对照图6,对解析出来的每个字段,分析IP层协议。
Source Port,Destination Port显示该IP包的源和目的端口。Sequence Number和Next Sequence Number是保证TCP流连续的关键字段,前一个包的Next Sequence Number应该和下一个包的Sequence Number一致,这样就可以知道网络中是否存在丢包,并确定需要重传的数据段。Header length标明TCP包头的长度(32bytes)。Window size 是TCP滑动窗
口协议中,窗口的大小。Header checksum为包头校验码。