需要一个简单的方法来本地修改wireshark.pcap包的d

2024-10-04 03:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试Scapy,但是文档太少了,我不能让它在简单的编辑中发挥良好的作用。在

本质上,我在Python中寻找一个简单的解决方案,从.pcap获取每个包,读取/修改一些数据/删除数据包并将其保存回.pcap。在

例如:

给定一个sACN包,我需要读取/修改优先级八位字节(108)和宇宙八位字节(113-114)并再次保存。在

谢谢!在


Tags: 数据文档编辑pcap宇宙解决方案数据包scapy
1条回答
网友
1楼 · 发布于 2024-10-04 03:20:04

要使用^{}处理“.pcap”文件,您需要从“PcapWriter”导入“斯皮乌蒂斯。以下示例演示如何使用scapy处理“.pcap”文件:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from scapy.all import *

# to process .pcap files we need to
# import 'PcapWriter' from 'scapy.utils'
from scapy.utils import PcapWriter

# initialize a 'net_old.pcap' file
old_cap = PcapWriter("net_old.pcap", append=True, sync=True)

# create a simple packet
packet = IP(dst = "www.google.com")/ICMP()/"hi"

# create a pcap with 5 such packets
for _ in range(5): old_cap.write(packet)

# now read the packets from 'net.pcap'
packets = rdpcap('net_old.pcap')

new_cap = PcapWriter("net_new.pcap", append=True)

# and modify each packet
for p in packets:
    # modify any packet field, e.g. IP's dst
    p[IP].dst = '8.8.8.8'
    # write new packets in the new pcap file
    new_cap.write(p)

现在,如果使用^{}查看“.pcap”文件,您将看到数据包已成功修改:


  • 旧pcap文件:

enter image description here


  • 新pcap文件:

enter image description here

相关问题 更多 >