Wireshark抓包后的报文太大,如何拆分?

背景:抓包获取到一个400多兆的网络数据包.pcapng文件,使用wireshark软件可以正常打开。但需要把文件导出为.json文件,从而方便对报文内容做过滤分析。使用wireshark自带的导出功能导出后发现生成的.json文件大小为2G多,使用notepad++根本打不开。就想着先把网络数据包文件.pcapng拆分成小的数据包后再导出为多个.json文件。

拆分方法:使用wireshark自动的工具就可以拆分,工具在wireshark的安装路径下,命令如下:
C:\Wireshark> .\editcap.exe -c 10000 large_capture.pcapng small_capture_part.pcapng在这里插入图片描述
说明:其中参数-c指定拆分成的文件的大小,单位是KB,如上面是10000KB,即大约10M大小的文件。命令执行后原始文件会被查封成多个文件,文件按序号命名。

Scapy是一个强大的Python网络数据包处理库,而Wireshark则是一个广泛使用的网络协议分析器。要实现在本地计算机上使用这两个工具捕获、修改RIP报文(Routing Information Protocol),我们首先需要了解它们的基本操作流程。 **示例步骤:** 1. **安装依赖**: - 安装`scapy`:`pip install scapy` - 如果要在Wireshark中查看捕捉到的数据,还需要安装Wireshark并开启显示过滤器`tcp.port == 520`(RIP通常使用UDP端口520) 2. **启动抓包**: 使用Scapy的`sniff()`函数开始监听网络流量: ```python from scapy.all import sniff # 指定接口和抓取特定类型的报文 ( RipV1 or RipV2) filter_str = "udp port 520" packets = sniff(filter=filter_str, iface="ensp") # 将"ensp"替换为你的网络接口名 ``` 3. **分析原始RIP报文**: 对捕获的每个报文,你可以访问其内容: ```python for packet in packets: if packet.haslayer(RoutingInformationProtocol): rip_packet = packet.getlayer(RoutingInformationProtocol) print("Original RIP message:") print(rip_packet.show()) ``` 4. **修改报文**: 要修改RIP报文,可以创建一个新的RIP报文实例,然后替换原内容: ```python modified_rip_packet = RoutingInformationProtocol() modified_rip_packet.route = 'modified_route' # 添加其他更改... ``` 5. **重传报文**: Scapy允许我们发送新的数据包,这里我们可以使用`send()`函数将修改后的报文发送回网络: ```python send(modified_rip_packet, verbose=False) # 静默发送,设置verbose=False防止打印太多信息 ``` 6. **分析结果**: 抓取一段时间后,再次检查Wireshark中是否能看到修改过的RIP报文。对比原始报文和修改后的报文,注意路由信息或其他字段的变化。 **相关问题--:** 1. 修改报文时如何添加自定义路由条目? 2. Scapy如何设置过滤规则只抓取RIP报文? 3. 如何确认发送的修改后的报文已被接收方路由器识别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值