pcap文件格式

pcap文件格式

pcap文件格式是bpf保存原始数据包的格式,很多软件都在使用,比如tcpdump、wireshark等等,
了解pcap格式可以加深对原始数据包的了解,自己也可以手工构造任意的数据包进行测试。

pcap文件的格式为:
文件头 24字节
数据包头 + 数据包 数据包头为16字节,后面紧跟数据包
数据包头 + 数据包 ......

pcap.h里定义了文件头的格式
struct pcap_file_header {
bpf_u_int32 magic;
u_short version_major;
u_short version_minor;
bpf_int32 thiszone; 
bpf_u_int32 sigfigs; 
bpf_u_int32 snaplen; 
bpf_u_int32 linktype; 
};

看一下各字段的含义:
magic: 4字节 pcap文件标识 目前为“d4 c3 b2 a1”
major: 2字节主版本号 #define PCAP_VERSION_MAJOR 2
minor: 2字节次版本号 #define PCAP_VERSION_MINOR 4
thiszone:4字节时区修正 并未使用,目前全为0
sigfigs: 4字节精确时间戳 并未使用,目前全为0
snaplen: 4字节抓包最大长度如果要抓全,设为0x0000ffff(65535),
tcpdump -s 0就是设置这个参数,缺省为68字节
linktype:4字节链路类型 一般都是1:ethernet

| magic |major | minor | thiszone | sigfigs | snaplen | linktype |
| d4 c3 b2 a1 | 02 00 | 04 00 | 00 00 00 00 | 00 00 00 00 | ff ff 00 00 | 01 00 00 00 |

数据包头的格式
struct pcap_pkthdr {
struct timeval ts; 
bpf_u_int32 caplen; 
bpf_u_int32 len; 
};
struct timeval {
long tv_sec; 
suseconds_t tv_usec; 
};
ts: 8字节 抓包时间 4字节表示秒数,4字节表示微秒数
caplen:4字节 保存下来的包长度(最多是snaplen,比如68字节)
len: 4字节数据包的真实长度,如果文件中保存的不是完整数据包,可能比caplen大

了解了pcap文件格式,就可以自己手工构造任意数据包了,可以以录好的包为基础,

用十六进制编辑器打开进行修改。

时间: 2024-10-16 10:52:58

pcap文件格式的相关文章

IP流量重放与pcap文件格式解析

(作者:燕云   出处:http://www.cnblogs.com/SwordTao/ 欢迎转载,但也请保留这段声明,谢谢!)   君不见 黄河之水 天上来 奔流到海不复回   君不见 高堂明镜 悲白发 朝如青丝暮成雪   人生得意须尽欢 莫使金樽空对月 --将进酒 pcap文件格式,为多数的tcpdump.wireshark等重量级的数据包抓取.分析应用程序所直接支持,所以,为我们的程序中嵌入此类文件的解析与生成功能,很是值得. 具体信息请看wireshark wiki:http://wik

TCP/IP协议数据包文件PCAP分析器

一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PCAP数据包组成,PCAP数据又由数据包头和数据包内容组成.数据包内容才是我们将要进行分析还原的TCP/IP协议数据.PCAP总体结构如图 11所示: 图 11 PCAP文件总体结构 以TCP协议为例,详细解析PCAP文件格式.PCAP前24个字节为文件头,包含了文件信息,其结构如图 11所示.接着1

使用editcap命令将ERF格式转换为pcap格式

editcap是Wireshark的一个组件,在Windows平台下,只要完成Wireshark的安装,就可以在安装目录中看到editcap.exe.editcap.exe需要在命令行中使用. 对于用Endace DAG捕捉卡捕获的数据包,一般来说,都是erf格式的.ERF格式全称是Extensible Record Format,具体格式参见http://wiki.wireshark.org/ERF.可以看到,这和pcap文件格式是完全不同的,一般来说,ERF格式的文件包含更多的链路层的信息.

pcap文件的python解析实例

最近一直在分析数据包.同时也一直想学python. 凑一块儿了...于是,便开工了.座椅爆炸! 正文 首先要说的是,我知道python有很多解析pcap文件的库,这里不使用它们的原因是为了理解pcap文件的格式细节.使用tcpdump你可以很容易抓取到一系列的数据包,然而tcpdump并没有分析数据包的功能,如果想从这个抓包文件中分析出一些端倪,比如重传情况,你必须使用wireshark之类的软件,用wireshark打开tcpdump抓取的pcap文件,如果你看到了一堆堆的深红色(类似静脉血管

自主创建tcpdump/wireshark pcap文件

pcap文件格式是bpf保存原始数据包的格式,很多软件都在使用,比如tcpdump.wireshark等等,了解pcap格式可以加深对原始数据包的了解,自己也可以手工构造任意的数据包进行测试. pcap文件的格式为:  文件头    24字节  数据包头 + 数据包  数据包头为16字节,后面紧跟数据包  数据包头 + 数据包  …… pcap.h里定义了文件头的格式 [cpp] view plaincopy struct pcap_file_header { bpf_u_int32 magic

构建tcpdump/wireshark pcap文件

pcap文件格式是bpf保存原始数据包的格式,很多软件都在使用,比如tcpdump.wireshark等等,了解pcap格式可以加深对原始数据包的了解,自己也可以手工构造任意的数据包进行测试. pcap文件的格式为:  文件头    24字节  数据包头 + 数据包  数据包头为16字节,后面紧跟数据包  数据包头 + 数据包  …… pcap.h里定义了文件头的格式 [cpp] view plaincopy struct pcap_file_header { bpf_u_int32 magic

大数据网络诊断系统项目总结

背景 网络数据流格式: 使用wireshark抓包工具,默认存取为pcap文件 Pcap文件格式: 文件头:  24B:Magic:4B 标示文件的开始 + Major:2B 当前文件主要的版本号 + Minor:2B+ThisZone:4B当地的标准时间+SigFigs:4B时间戳的精度+SnapLen:4B最大的存储长度+LinkType:4B链路类型 Packet包头(16B)和Packet数据组成 Timestamp:时间戳高位,精确到seconds Timestamp:时间戳低位,精确

wireshark源码分析二

一.源代码结构 在wireshark源代码根目录下,可以看到以下子目录: 1)物理结构     其中,epan文件夹负责所有网络协议识别工作,plugins里面存放了wireshark所有插件,gtk文件夹里面是wireshark的界面部分代码,其余文件夹没有单独研究. 2)逻辑结构 下图给出了Ethereal功能模块: a) GTK1/2 处理用户的输入输出,源码在gtk目录 b) Core 将其他模块连接在一起,源码在根目录 c) Epan Ethereal Packetage Analyz

抓包分析提取五元组

参考:http://ctf.idf.cn/index.php?g=&m=article&a=index&id=10 写的很赞的一些列入门文章 网络中每个通信实体的 socket 是用一个三元组标识的.三元组往往称为半相关 三元组指的是:协议族(地址族),网络地址.和传输层端口 (Ipv4 ). 通信双方的一个连接是用网络五元组来标识的,它是由双方相同协议族的两个本地三元组合成的.五元组往往称为全相关. 网络五元组指的是:协议族(地址族).本地网络地址.本地端口.远程网络地址和远程端