Pcap 文件格式和 WireShark
wireshark命令行工具介绍

2.删除重复包类
-d -D <dup window> 删除重复的包(默认5个内进行比对)。 删除重复的包,并指定在<dup window>个包内进行比对 <dup window>的范围为0-1000000。 -w <dup time window> 删除重复的包,并指定时间在<dup time window>之前 的数据包才做重复删除操作。
Company Logo
wireshark命令行工具 - editcap
3. 处理类
-s <snaplen> 将数据包截断成长度为<snaplen>的数据包。 -C <choplen> 将包尾的<choplen>个字节砍掉。 -t <time adjustment> 调整包的时间戳;<time adjustment> 即可以为正数,也 可以为负数。 -E <error probability> 按照<error probability>的比例随机制造错包,例如 <error probability>为0.05,则包文件中5%的包会随机被配置为各种错包。
Wireshark图解教程(简介、抓包、过滤器)配置

Wireshark是世界上最流行的网络分析工具。
这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。
与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。
可破解局域网内QQ、邮箱、msn、账号等的密码!!wireshark的原名是Ethereal,新名字是2006年起用的。
当时Ethereal的主要开发者决定离开他原来供职的公司,并继续开发这个软件。
但由于Ethereal这个名称的使用权已经被原来那个公司注册,Wireshark这个新名字也就应运而生了。
在成功运行Wireshark之后,我们就可以进入下一步,更进一步了解这个强大的工具。
下面是一张地址为192.168.1.2的计算机正在访问“”网站时的截图。
1. MENUS(菜单)2. SHORTCUTS(快捷方式)3. DISPLAY FILTER(显示过滤器)4. PACKET LIST PANE(封包列表)5. PACKET DETAILS PANE(封包详细信息)6. DISSECTOR PANE(16进制数据)7. MISCELLANOUS(杂项)1. MENUS(菜单)程序上方的8个菜单项用于对Wireshark进行配置:- "File"(文件)- "Edit" (编辑)- "View"(查看)- "Go" (转到)- "Capture"(捕获)- "Analyze"(分析)- "Statistics" (统计)- "Help" (帮助)打开或保存捕获的信息。
查找或标记封包。
进行全局设置。
设置Wireshark的视图。
跳转到捕获的数据。
设置捕捉过滤器并开始捕捉。
设置分析选项。
查看Wireshark的统计信息。
Wireshark的Pcap文件格式分析及解析源码

Wireshark的Pcap文件格式分析及解析源码Wireshark的Pcap文件格式分析及解析源码下面主要介绍下Ethereal默认的*.pcap文件保存格式。
Pcap文件头24B各字段说明:Magic:4B:0x1A 2B 3C 4D:用来标示文件的开始Major:2B,0x02 00:当前文件主要的版本号Minor:2B,0x04 00当前文件次要的版本号ThisZone:4B当地的标准时间;全零SigFigs:4B时间戳的精度;全零SnapLen:4B最大的存储长度LinkType:4B链路类型常用类型:0 BSD loopback devices, except for later OpenBSD1 Ethernet, and Linux loopback devices6 802.5 Token Ring7 ARCnet8 SLIP9 PPP10 FDDI100 LLC/SNAP-encapsulated ATM101 "raw IP", with no link102 BSD/OS SLIP103 BSD/OS PPP104 Cisco HDLC105 802.11108 later OpenBSD loopback devices (with the AF_value in network byte order)113 special Linux "cooked" capture114 LocalTalkPacket 包头和Packet数据组成字段说明:Timestamp:时间戳高位,精确到secondsTimestamp:时间戳低位,精确到microsecondsCaplen:当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
Len:离线数据长度:网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。
wireshark源代码的一些分析

wireshark源代码的一些分析epan/dissector/packet-XXX.c提供了相应协议的解析器需要把解析器先注册到系统中,然后实现协议解析proto_register_XXX()dissect_XXX()在协议解析中使用到的函数有三个变量, tvbuff_t , packet_info, proto_tree每一个proto_item都将被添加到proto_tree中去wiretap/wiretap提供了大量读取文件的程序文件读取分为两种,一种是读取正在捕获的文件,还有一种就是读取存在磁盘上的文件每一个文件格式都有自己的文件读取的程序,如标准libpcap文件格式cap格式,就对映libpcap.c和libpcap.h文件。
wiretap目录下的pcap_common.c和pcap_common.h提供一写文件格式的结构标准libpcap文件是如下储存网络数据的GLOABLE HEADER | PACKET HEADER | PACKET DATA | PACKET HEADER | PACKET DATA |以libpcap.c为例GLOABLE HEADER 分为两个部分 magic number 和 pcap_hdr 程序先调用libpcap_open打开文件并判断文件类型和初始化其他变量然后用libpcap_read读入PACKET HEADER 和 PACKET DATA。
一次调用只能读一个PACKET HEADER 和 PACKET DATA, 然后保存在wtap结构体中!所以一个wtap结构体只能保存一个packet!在wtap.h中保存着wtap_file_type 和 wtap_encap_type 分别表示文件类型和协议的封装类型/capinfos.c这是wireshark套件中的一个工具软件,它的作用是输出文件的信息capinfos支持所有wireshark 支持的文件格式在capinfos中文件中帧信息主要保存在wtag结构中体。
wireshark 抓包的格式

Wireshark是一种流行的网络分析工具,它可以捕获和分析网络数据包。
Wireshark抓包的格式是非常重要的,它决定了我们如何解析和分析捕获到的数据包。
本文将介绍Wireshark抓包的格式,包括常见的文件类型和数据结构,并探讨如何有效地利用这些格式进行网络分析和故障排查。
一、Wireshark抓包的文件格式Wireshark可以将捕获到的数据包保存为不同的文件格式,其中常见的包括pcap、pcapng、cap、etl等。
不同的文件格式具有不同的特点和用途,下面我们将逐一介绍它们。
1. pcap格式pcap(Packet Capture)是Wireshark最常用的文件格式,它可以保存捕获到的网络数据包以及相关的信息,如时间戳、数据长度、数据内容等。
pcap格式的文件通常使用libpcap或WinPcap库进行读取和分析,它可以跨评台使用,并且被许多网络工具和应用程序所支持。
2. pcapng格式pcapng(Packet Capture Next Generation)是Wireshark的一种新文件格式,它在pcap的基础上进行了扩展和改进,支持更多的元数据和信息字段。
pcapng格式的文件通常包含多个数据块(Block),每个数据块都可以保存不同类型的数据,如捕获配置信息、数据包数据、接口信息等。
pcapng格式的文件在Wireshark 1.8及以上版本中得到支持,在一些特定场景下具有更好的灵活性和可扩展性。
3. cap格式cap格式是一种比较老旧的文件格式,它通常用于微软网络监控工具或特定的硬件设备。
cap格式的文件结构较为简单,通常包含数据包的原始内容和一些简单的元数据信息,不支持一些高级的特性和功能。
4. etl格式etl(Event Trace Log)格式是一种Windows事件跟踪日志文件格式,它通常用于收集系统和应用程序的事件信息。
在一些特定情况下,我们也可以使用Wireshark来解析和分析etl格式的数据包,不过需要借助一些额外的工具和插件。
wireshark抓包原理解析

wireshark抓包原理解析Wireshark是一款功能强大的网络协议分析软件,可以帮助用户查看和分析网络数据包。
它能够从网络接口上捕获数据包,还可以根据不同的协议对数据包进行解析和分析。
那么,Wireshark是如何实现抓包的呢?下面,我们就从网络以及软件两个方面来解析Wireshark的抓包原理。
一、网络方面那么,数据包是如何到达我们的计算机的呢?它是通过网络线路、路由器等物理设备传输到各个计算机的网络接口上的。
当计算机收到数据包时,它会通过网络接口把数据包交给操作系统进行处理。
这个时候,Wireshark就可以通过在操作系统的网络接口处进行数据包捕获,从而实现对网络数据包的抓包。
当数据包进入网络接口时,它首先会被操作系统进行缓存。
这时,Wireshark就可以通过网络接口的混杂模式来抓取数据包。
混杂模式是指,网络接口会将所有经过它的数据包都传递给操作系统的缓存区,不管这些数据包是否是针对这台机器的。
这就使得Wireshark可以捕获所有经过这个网络接口的数据包。
二、软件方面Wireshark实现抓包主要是通过软件技术来实现的。
它使用了一种叫做「WinPcap」的软件包来实现对网络接口的监控和数据包的捕获。
WinPcap是一种针对Windows平台的网络接口抓包工具,它可以实现对网络接口的数据包进行捕获和过滤。
而Wireshark则是通过对WinPcap进行二次开发,来实现了更加丰富和强大的抓包功能。
当Wireshark收到从WinPcap传递来的数据包时,它首先会对数据包进行解析和过滤。
这个过程实际上就是Wireshark进行抓包和分析的核心部分。
它会根据数据包的协议类型和格式来进行解析,还可以根据用户的需求进行数据包的过滤,从而确保只抓取到用户所关心的数据包。
经过这些处理之后,Wireshark就可以在界面上展示出这些数据包的详细信息。
总结:Wireshark的抓包原理是通过在网络接口处捕获数据包,使用软件进行解析和过滤,并将结果呈现在界面上的方式实现的。
通过wireshark分析pcap抓包方法说明

文档维护人:杨云邮箱:yangyun@版权所有 侵权必究 2013年12月上海网宿科技股份有限公司扎实稳健,和谐融洽志存高远,厚积薄发Wireshark 使用指南---通过wireshark 分析pcap 抓包方法说明版本修订记录(项目)目录1.背景 (4)2.支持的文件格式 (4)3.源目的IP查看 (4)4.DNS报文查看 (4)5.HTTP报文查看 (6)6.报文过滤语法 (8)(1)IP过滤:包括来源IP或者目标IP等于某个IP (8)(2)端口过滤: (8)(3)协议过滤: (9)(4)TCP显示过滤规则: (9)(5)包长度过滤: (9)(6)HTTP模式过滤: (9)(7)表达式: (11)1.背景本文档介绍如何利用wireshark工具分析抓包。
2.支持的文件格式支持解析wireshark或者tcpdump等抓包工具抓下来的报文,支持pcap/pcapng/cap等抓包格式。
(tcpdump抓包工具使用见“tcpdump使用指南.docx”)3.源目的IP查看通过目的IP查看判断用户访问是否到我们的加速服务。
以及其他的问题。
Pcap包在wireshark中展示如下图,由左往右各列的含义分别是:流序列号即第几条流(No.),相对时间(Time),源IP(Source),目的IP(Destination),协议(Protocol),报文长度(Length),报文详情(Info)。
红色框的部分就是抓包的源IP和目的IP了。
4.DNS报文查看可以通过dns判断域名是否引导到我们的加速服务上。
以及dns相关的其他问题。
过滤条件填dns,apply应用过滤条件,即可过滤出dns报文,如下图。
Info(报文详情)列查看dns报文的详情。
详情内容如“Standard query 0x4899 A ”,为dns请求报文,为请求解析的域名;内容如“Standard query response 0x6900 CNAME CNAME A 42.62.12.123 A 42.62.12.121”为dns响应报文,意思是解析的域名有别名和,解析结果IP是42.62.12.123 和42.62.12.121。
pcap文件格式和wireshark解析

pcap文件格式和wireshark解析pcap文件头pcap文件头参见官方说明用python代码表达结构如下,I是32位无符号数,下面的定义均采用32位方式# bpf_u_int32 magic; 固定为0xA1B2C3D4,表示pcap包文件# u_short version_major; 主版本号# u_short version_minor; 分支版本号# bpf_int32 thiszone; 时区# bpf_u_int32 sigfigs;# bpf_u_int32 snaplen; 每个包的最大长度# bpf_u_int32 linktype; 链路层协议族self.struct_pcap_file_header = '!I2H4I'pcap每个包的头参见# struct timeval ts;# bpf_u_int32 caplen;# bpf_u_int32 len;self.struct_pcap_pkthdr = '!4I'timeval是c的时间戳结构体,前面一个整型数是秒数偏置,后面一个整型数是微秒偏置,详情可以查阅相关文档生成pcap文件使用python简单生成,写入到test.pcap文件,写入了两个包到该文件,linktype设置为162,在wireshark源码中表示保留给用户的USER15 类型# -*-coding:utf-8-*-"""Author:yinshunyaoDate:2017/3/24 0024上午 10:47"""import unittestimport structclass PacpTest(unittest.TestCase):def setUp(self):# pcap文件头格式## bpf_u_int32 magic; 固定为0xA1B2C3D4,表示pcap包文件# u_short version_major; 主版本号# u_short version_minor; 分支版本号# bpf_int32 thiszone; 时区# bpf_u_int32 sigfigs;# bpf_u_int32 snaplen; 每个包的最大长度# bpf_u_int32 linktype; 链路层协议族self.struct_pcap_file_header = '!I2H4I'# pcap包头格式## struct timeval ts;# bpf_u_int32 caplen;# bpf_u_int32 len;self.struct_pcap_pkthdr = '!4I'# 文件头self.file_header = struct.pack(self.struct_pcap_file_header,0xA1B2C3D4, 4, 1, 0, 0, 0xFFFF, 162 # USER15)def test_generate_pcap(self):# 消息体内容pkg_content1 = struct.pack('!2I', 100,101)pkg_content2 = struct.pack('!2I', 101,100)#pkg_header = struct.pack(self.struct_pcap_pkthdr, 0x4A5B1784,0x00081C6D,len(pkg_content1), len(pkg_content1))with open('test.pcap', 'wb') as test:test.write(self.file_header+pkg_header+pkg_content1+pkg_header+pkg_content2)wireshark解析效果用自定义的wireshark插件协议解析整体效果如下,后面具体介绍插件内容,可以看到Encapsulation type字段值是60,协议是USER15这个值跟前面文件头里面的link162的映射关系,在wireshark中完成,具体处理可以查看wireshark的C源码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pcap 文件格式和 WireShark
PCAP是一个数据包抓取库, 很多软件都是用它来作为数据包抓取工具的。
WireShark也是用PCAP库来抓取数据包的。
PCAP抓取出来的数据包并不是原始的网络字节流,而是对其进行从新组装,形成一种新的数据格式。
一个用PCAP抓取的数据包的文件格式如下:
Pcap文件头24B各字段说明:
Magic:4B:0x1A 2B 3C 4D:用来标示文件的开始
Major:2B,0x02 00:当前文件主要的版本号
Minor:2B,0x04 00当前文件次要的版本号
ThisZone:4B当地的标准时间;全零
SigFigs:4B时间戳的精度;全零
SnapLen:4B最大的存储长度
LinkType:4B链路类型
常用类型:
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
其中我们最为常见的类型就是1,以太网链路。
字段说明:
Timestamp:时间戳高位,精确到seconds
Timestamp:时间戳低位,精确到microseconds
Caplen:当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
Len:离线数据长度:网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。
Packet 数据:即 Packet(通常就是链路层的数据帧去掉前面用于同步和标识帧开始的8字节和最后用于CRC校验的4字节)具体内容,长度就是Caplen,这个长度的后面,就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,我们需要靠第一个Packet包确定下一组数据在文件中的起始位置,向后以此类推。
下面是一个PCAP数据包的实例,该数据包包含了两条消息。
下图是用十六进制工具将该数据包打开后的截图。
图中最开始的绿色部分就是24 Bytes的Pcap Header,接下来红色的16 Bytes是第一个消息的Packet Header, 后面的红色的16 Bytes是第二个消息的Packet Header。
两块蓝色的部分分别是两个消息从链路层开始的完整内容。
在网络上实际传输的数据包在数据链路层上每一个Packet开始都会有7个用于同步的字节(10101010, 10101010, 10101010, 10101010, 10101010, 10101010, 10101010,)和一个用于标识该Packet开始的字节(10101011),最后还会有四个CRC校验字节;而PCAP文件中会把前8个字节和最后4个校验自己去掉,因为这些信息对于协议分析是没有用处的。
用Wireshark打开一个Pcap数据包后, 每条消息的所有field会被解析出来并会按照协议层次折叠起来。
第一层显示的是Frame XXX,这一级别没有对应某层具体的协议,而是对本条消息的一个概括性总结,描述了一些有用的概括性信息,比如从里面我们可以看到本条消息各种协议的层次关系,展开其它协议层之后对应的是该协议的各个域;如下图所示:。