inspiriert von @sch hier ist eine bash version:
file=cap.pcap
$tshark -Tfields -e tcp.stream \
-e frame.time_epoch \
-e ip.src \
-e tcp.srcport \
-e ip.dst \
-e tcp.dstport -r $file |
sort -snu |
while read -a f; do
[[ "${f[5]}" ]] || continue # sometimes there is no stream number ex. UDP
fileout=$(echo ${f[0]}__${f[1]}__${f[2]}__${f[3]}__${f[4]}__${f[5]} | tr -d '\r' )
$tshark -r $file -2R "tcp.stream == ${f[0]}" -w "$fileout.pcap"
done
read
Der Dateiname wird so aussehen: stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
ist für Windows-Benutzer, weil tshark in Windows CR LF ausgibt.
Bearbeiten :
Diese Lösung mit tshark ist so langsam, aber sicher. SplitCap ist super schnell, aber wenn es einen Fehler in einem Paket gibt, stürzt es ab, während tshark Sie nur über den Fehler informiert, aber fortfährt:
tshark: The file "cap.pcap" appears to have been cut short in the middle of a packet.
und schließlich gibt es PcapSplitter, der auch super schnell ist, aber den winpcap-Treiber benötigt, er funktioniert nicht mit dem npcap-Treiber in Windows.
Aber es gibt eine Lösung für SplitCap: Mit pcapfix kann ich die beschädigten Pakete reparieren, dann stürzt SplitCap nie wieder ab. und das ist es, was ich jetzt benutze, weil der Hai so langsam spaltet.
und eine Lösung für PcapSplitter, die ich gemacht habe, war das Injizieren der winpcap-DLL mit einer beliebigen Methode, aber während wir SplitCap haben, warum?