当前位置:网站首页 > 技术博客 > 正文

抓包packet capture



pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。普通的记事本打开pcap文件显示的是乱码,用Ultra Edit能够以16进制数据的格式显示,用wireshark这种抓包工具就可以正常打开这种文件,愉快地查看里面的网络数据报了,同时wireshark也可以生成这种格式的文件。当然这些工具只是我经常使用的,还有很多其它能够查看pcap文件的工具。

.pcap/.cap文件结构如下:
在这里插入图片描述

1.Pcap Header

文件头,每一个pcap文件只有一个文件头,总共占字节,以下是总共的含义。

Magic(4B): 标记文件开始,并用来识别文件和字节顺序。值可以为0xa1b2c3d4或者0xd4c3b2a1,如果是0xa1b2c3d4表示是大端模式,按照原来的顺序一个字节一个字节的读,如果是0xd4c3b2a1表示小端模式,下面的字节都要交换顺序。现在的电脑大部分是小端模式。

Major(2B): 当前文件的主要版本号,一般为0x0200

Minor(2B): 当前文件的次要版本号,一般为0x0400

ThisZone(4B): 当地的标准事件,如果用的是GMT则全零,一般全零

SigFigs(4B): 时间戳的精度,一般为全零

SnapLen(4B): 最大的存储长度,设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将值设置为65535

LinkType(4B): 链路类型。解析数据包首先要判断它的LinkType,所以这个值很重要。一般的值为1,即以太网
常用的LinkType(链路类型):

值 类型描述 0 BSD loopback devices, except for later OpenBSD 1 Ethernet, and Linux loopback devices 6 802.5 Token Ring 7 ARCnet 8 SLIP 9 PPP 10 FDDI 100 LLC/SNAP-encapsulated ATM 101 “raw IP”, with no link 102 BSD/OS SLIP 103 BSD/OS PPP 104 Cisco HDLC 105 802.11 108 later OpenBSD loopback devices (with the AF_value in network byte order) 113 special Linux “cooked” capture 114 LocalTalk
2.Packet Header

数据包头可以有多个,每个数据包头后面都跟着真正的数据包。以下是Packet Header的4个字段含义

Timestamp(4B): 时间戳高位,精确到seconds,这是Unix时间戳。捕获数据包的时间一般是根据这个值
Timestamp(4B): 时间戳低位,能够精确到microseconds
Caplen(4B): 当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
Len(4B): 离线数据长度,网路中实际数据帧的长度,一般不大于Caplen,多数情况下和Caplen值一样


3.Packet Data

Packet是链路层的数据帧,长度就是Packet Header中定义的Caplen值,所以每个Packet Header后面都跟着Caplen长度的Packet Data。也就是说pcap文件并没有规定捕获的数据帧之间有什么间隔字符串。Packet数据帧部分的格式就是标准的网络协议格式了。

eg:
下图为16进制pcap文件:
在这里插入图片描述
备注:
红色部分:Pcap Header
蓝色部分:Packet Header




PcapHeader

Magic(4B): 表示小端模式,后面的字节从后往前读;
Major(2B): ,计算机读的是;
Minor(2B): ,计算机读的是;
ThisZone(4B): ,全零;
SigFigs(4B): ,全零;
SnapLen(4B): FF FF 00 00, 计算机读的是:00 00 FF FF,所以是2^16-1=65535
LinkType(4B): 01 00 00 00, 计算机读的是:00 00 00 01,表示是以太网类型





Packet Header

Timestamp(4B): ,计算机读的是:,十进制:,日期为:;
Timestamp(4B): ,计算机读的是:,十进制:,代表;
Caplen(4B): , 计算机读的是:,十进制:,代表后面的个字节为一个数据帧,之后又是一个新的PacketHeader,如此循环;
Len(4B): ,和Caplen相同


wireshark打开.pcap文件:
在这里插入图片描述

版权声明


相关文章:

  • 深度神经网络通俗理解2025-09-03 11:01:01
  • java hashset hashcode2025-09-03 11:01:01
  • linux 多线程编程2025-09-03 11:01:01
  • sqlserver增删改查语句2025-09-03 11:01:01
  • 黑客hacker2025-09-03 11:01:01
  • 什么是数据库的事务处理2025-09-03 11:01:01
  • spring aspectj aop2025-09-03 11:01:01
  • 我的世界java版本大全2025-09-03 11:01:01
  • strace命令详解2025-09-03 11:01:01
  • 对称密码算法和非对称密码算法2025-09-03 11:01:01