wireshark pacp文件的格式
2015-07-01 19:23
253 查看
wireshark保存文件有多种格式,而pacp这种格式是比较简单的格式。所以讲自己捕获的包存储为这种格式,方便用wireshark进行分析。
用UE打开我们用wireshark捕捉到的数据包,看他的二进制形式,如下图:
在wireshark下,这个文件的打开形式是这样:
可以看到第一个包在文件中的位置:第三行的第七字节往后就是。这样可以知道文件头和第一块数据头管理部分的具体内容。
结合源码中的结构体:
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是小端序而网络是大端序,所以文件头和管理头是小端序,数据部分是大端序。这个从其二进制形式就可以看出来。
用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是小端序而网络是大端序,所以文件头和管理头是小端序,数据部分是大端序。这个从其二进制形式就可以看出来。
相关文章推荐
- Android wiki:05.跑马灯文字流动效果(自定义带焦点的view对象)
- Android内存泄漏分析及调试
- js 多选 反选
- Java面试 多线程 生产者消费者
- vs2012识别不了QT5.2.0的头文件
- aspxshell下突破无可写可执行目录执行cmd
- Android wiki:04.ConnectivityManager检查是否有可用网络
- select唤醒函数
- Android wiki:03.android json解折
- Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo
- SDUToj 2929 人活着系列之芳姐和芳姐的猪(Floyd+枚举)
- 安卓ndk调试笔记
- zepto tap “点透”研究 (转)
- C/C++结构体内存对齐
- Android wiki:02.给activity添加动画效果
- 初次使用游标
- JQuery使用的个人笔记
- 岁月的剪影【七月My way】
- iOS控件UITextView 实现placeholder效果和解决UITableView键盘遮挡
- 记录下Mac下的快捷键