• 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文件格式,就可以自己手工构造任意数据包了,可以以录好的包为基础,
    用十六进制编辑器打开进行修改。
  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4067058.html
Copyright © 2020-2023  润新知