《2022年cap文件类型的数据包结构分析 .pdf》由会员分享,可在线阅读,更多相关《2022年cap文件类型的数据包结构分析 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、cap文件类型的数据包结构分析CAP文件是比较通用的一种文件格式,基本上大多数抓包软件都支持以此格式将捕获的网络数据包存储下来。需要说明的是,CAP文件存储下来的,一般都是网络数据帧。不同网络传输协议下的帧格式是有差异的, 所以这里以以太网帧作讨论。我所分析的CAP包是由 ethereal抓取的。tcpdump和 windump抓的包格式基本一致。CAP文件是全十六进制数据文件而不是文本文件,所以其结构需要分析,由于我并不打算做专门的分析软件,所以我只作对我来说有意义的一些数据的分析。CAP里面的数据有些地方是和我们常规数据的顺序一样的,有些位置是标准的高位取反,根据该位置表示的数据类型确定。
2、CAP文件的前24 个 16 进制位是头文件相关的信息我们不用关心,随后紧跟的八个位(后面所有的位都指两个16 进制数构成的一个十六进制位,如AC ,B8就是两个16 进制位) ,是抓包的时间戳标记,里面应该包括了年月日和具体到毫秒级别的时间,前 4位高低位的互换再乘1000 可得到当前的时间精确到秒,后4 位是微妙,算法同前面。随后的 8 个位是比较重要的,其中前 4 个是我们抓取到的数据帧长度,同时也关系到我们如何在 CAP文件中得到下一组数据帧位置。这四个位每个的前两位高位取反后表示数据帧的长度,第一组是软件抓取到的数据帧长度,后面一组是网络中实际数据帧的长度。一般来说第一组小于等于第二
3、组数据。这八个位结束后,就是帧的具体内容,长度就是前面的第一组数,这个长度的后面,就是CAP存的下一组帧数据,也就是说,CAP文件里面并没有规定捕获的帧数据之间有什么间隔字符串,我们需要靠第一组数确定,下一组数据在文件中的起始位置。下面的内容其实应该算是TCP/IP 书里的标准内容,不过我还是继续写吧。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 我们接着讲后面负载的内容,6 位的目标MAC 地址, 6 位的源 MAC 地址,
4、然后二位是三层协议类型,一般来说,我们关心的可能只有0800 这代表 IP,随后一位是IP 协议的版本号,45 表示的是V4版本,后一位是差分服务表示位,然后两位是IP 包长度,这一长度包括了IP 包头,随后两位是鉴别代码,随后的标志第一个是数据分段标志,表示是否对数据进行分拆,00 表示没有设置, 40 表示设置为不拆分。随后一位是拆分偏移量, 对于没有拆分的数据没有意义就是00。随后一位有名的time to live值,不用多说,随后一位是四层协议类型,TCP就是 06,UDP是 11,随后两位是头校验码,知道的人都懂。随后四位就是我们的源IP 地址,接着四位是目标IP 地址,这8 位也是
5、属于IP 包头的。随后两位是源端口,接着两位是目的端口(不管是TCP 还是 UDP )下面要区分的说,如果是TCP的话,随后的两个四位数据分别是会话序号和回应序号,如果回应序号为0,很多时候意味着这是一个 SYN ,不过 SYN专门有标志。接下来一位是TCP包头长度。这个长度由源端口开始算。再接下来一位就是应答标志位,如果是02 表示是 SYN ,如果是12 则表示是 SYN , ACK ,如果是10 则表示是 ACK 。然后的两位是WINDOW SIZE ,然后两位是TCP包头的校验。再接下来就是TCP包的负载内容了,这根据上层应用来说就更为复杂,这里不详细讨论。接着说,如果是UDP包,端口号过了直接就是包负载长度两位长和UDP包头校验码两位长,然后就是UDP包负载的内容了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 本文出自“ 程序小酌 ” 博客,请务必保留此出处http:/ - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -
限制150内