2

python scapyを使用してpcapファイルを読み取り、TCPペイロードを操作して(たとえば、現在のペイロードを削除して0に置き換える)、操作したパケットを新しいpcapファイルに書き込みたい。

4

2 に答える 2

2

pypcapと dpktを使用したソリューションを次に示します。IP が L2 プロトコルであると想定しています。

import dpkt
from dpkt.ip import IP
from dpkt.tcp import TCP

for ts, raw_pkt in pcap.pcap(file_path):
    ip = IP(raw_pkt[14:])
    if(type(ip) != IP):
        continue
    tcp = ip.data
    if(type(tcp) != TCP):
        continue
    do_something_with(tcp.data)
于 2012-08-17T11:58:47.490 に答える
1

FTR、op の質問に答えるために、

from scapy.all import *
with PcapWriter("output.pcap", sync=True) as outs:
    with PcapReader("input.pcap") as ins:
        for pkt in ins:
            if TCP in pkt:
                pkt[TCP].remove_payload()
            outs.write(pkt)
于 2019-06-24T21:44:09.720 に答える