【wireshark】抓包和文件格式支持

本文详细介绍了Wireshark如何进行网络抓包,包括利用dumpcap访问底层适配器,并使用libpcap/WinPcap库进行捕获。此外,还讨论了Wireshark支持的文件格式,如libpcap格式,以及wiretap库在处理多种文件格式中的作用。在报文解析部分,解释了Wireshark如何探测和解析包信息,以在报文列表和细节窗格中展示。参考Wireshark开发指南,可深入了解其工作原理。
摘要由CSDN通过智能技术生成

1. 抓包

捕获从网络适配器提取包,并将其保存到硬盘上.

访问底层网络适配器需要提升的权限,因此和底层网卡抓包的功能被封装在dumpcap中,这是Wireshark中唯一需要特权执行的程序,代码的其他部分(包括解析器,用户界面等等)只需要普通用户权限。

为了隐藏所有底层的机器依赖性,使用了libpcap/WinPcap库.这此库提供了从多种不同的网络接口 类型(Ethernet, Token Ring,...)上捕获包的通用接口.

2. 文件格式

Wireshark可以读写libpcap格式的捕获文件,这是它的默认文件格式,被用于其他很多网络捕获工具, 如tcpdump.另外,Wireshark还可以读写其他网络捕获工具使用的多种不同的文件格式.wiretap库, 和Wireshark一起开发,提供了读写所有这些文件格式的通用接口.如果你需要添加其他的捕获文件格式,应从此处着手.

pcap文件的封装格式如下图所示。magic number的值对于以主机字节序写入的文件来说是0x1a2b3c4d。

 

两个重要struct见/wiretap/libpcap.h。

/* "libpcap" file header (minus magic number). */
struct pcap_hdr {
    unsigned short  version_major;
    unsigned short  version_minor;
    int thiszone;
    unsigned int    sigfigs;
    unsigned int    snaplen;
    unsigned int    network;
};

/* "libpcap" record header. */
struct pcaprec_hdr {
    unsigned int    ts_sec;
    unsigned int    ts_usec;
    unsigned 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值