Я пытаюсь исправить захват пакетов после жесткого нарезания, когда длина кадра (wirelen) неверна и мешает анализу Wireshark.
Мне удалось сделать это с помощью Scapy, но проблема в том, что это занимает много времени сделать это. Для 236000 пакетов это занимает до 4 минут, когда приложение Tracewrangler на windows занимает 9 секунд с тем же файлом.
Я делаю что-то не так или это просто так?
scapy == 2.4.3, RHEL7.8, Python 3.6.8
from scapy.all import *
from datetime import datetime
time_start = datetime.now()
packets = PcapReader('original_big_file.pcap')
new_cap = PcapWriter("new_big_file.pcap", append=True)
for packet in packets:
len_delta = packet[IP].len - len(packet[TCP].payload) - 40
new_wirelen = packet[Ether].wirelen + len_delta
packet[Ether].wirelen = new_wirelen
new_cap.write(packet)
time_delta = datetime.now() - time_start
print(time_delta)