Ich muss Pakete aus einem pcap Dateien filtern und weiter verarbeiten. Die Dateien sind sehr groß, daher ist es nicht möglich, das ganze Ding gleichzeitig in den Speicher zu schreiben. Scapy scheint sehr anspruchsvoll zu sein, und ich konnte mitPython Scapy Filter pcap Datei
durch Pakete iterierenwith PcapReader(pcap) as pcap_reader:
for pkt in pcap_reader:
...
Leider war ich nicht in der Lage, einen Weg zu finden, einen Filter (zB BPF) weder die PcapReader
so nur passenden Pakete wiederholt werden anzuwenden noch die pkt
(die sollte scapy.packet
sein!?).
Ich habe gesehen, dass es eine Funktion tdecode
gibt, die ein Tshark-Decoder ist, der einen Filter als Argumente nimmt, aber es gibt keine Möglichkeit, die resultierenden Pakete in eine Variable zu speichern, sondern nur das Terminal mit allen Ergebnissen zu überfluten.
Gibt es eine Möglichkeit, Pakete aus einer .pcap-Datei mit scapy
zu filtern und immer noch über die Ergebnisse zu iterieren?
Kannst du nicht erster Filter mit tshark (was ziemlich schnell ist) und dann die neue pcap weiter mit scapy verarbeiten? Wenn deine Nachbearbeitung teuer ist, ist es wahrscheinlich besser, libpcap direkt zu benutzen. – pchaigno