您的位置:首页 > 其它

wireshark pacp文件的格式

2015-07-01 19:23 253 查看
wireshark保存文件有多种格式,而pacp这种格式是比较简单的格式。所以讲自己捕获的包存储为这种格式,方便用wireshark进行分析。

用UE打开我们用wireshark捕捉到的数据包,看他的二进制形式,如下图:



在wireshark下,这个文件的打开形式是这样:



可以看到第一个包在文件中的位置:第三行的第七字节往后就是。这样可以知道文件头和第一块数据头管理部分的具体内容。

结合源码中的结构体:

struct pcap_hdr {
guint32 magic;          /* magic number */
guint16 version_major;  /* major version number 主版本号,通常为2*/
guint16 version_minor;  /* minor version number副版本号,通常为4 */
gint32  thiszone;       /* GMT to local correction */
guint32 sigfigs;        /* accuracy of timestamps */
guint32 snaplen;        /* max length of captured packets, in octets */
guint32 network;        /* data link type */
};
/* "libpcap" record header. */
struct pcaprec_hdr {
guint32 ts_sec;         /* timestamp seconds */
guint32 ts_usec;        /* timestamp microseconds (nsecs for PCAP_NSEC_MAGIC) */
guint32 incl_len;       /* number of octets of packet saved in file //所捕获数据包保存在pcap文件中的实际长度,以字节为单位。*/
guint32 orig_len;       /* actual length of packet所捕获的数据包的真实长度 */
};


Pcap文件头24B各字段说明:
Magic:4B:0xA1 B2 C3 D4:用来标示文件的开始
Major:2B,0x00 02:当前文件主要的版本号     
Minor:2B,0x00 04当前文件次要的版本号
ThisZone:4B当地的标准时间;全零
SigFigs:4B时间戳的精度;全零
SnapLen:4B最大的存储长度(该值设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将该值设置为65535; 例如:想获取数据包的前64字节,可将该值设置为64)
network :LinkType  4B链路类型,注意0x71是linux的抓包类型
常用类型:

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

这两个头合起来有4*10字节。也就是16*2+8.刚好相等,这样我们就知道了pacp的文件的组成格式,也就是文件头+管理头+数据头的形式。文件头只有一个,之后是管理头和数据头重复的形式。

由于Ubuntu是小端序而网络是大端序,所以文件头和管理头是小端序,数据部分是大端序。这个从其二进制形式就可以看出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: