tcpdump で収集した大きな pcap (パケット キャプチャ) ファイルがいくつかあります。特定の文字列を含むパケットを除外したいと考えています。出力を引き続き pcap 形式にしたい。pcap ファイルから正規表現に一致するパケットのみを表示する方法をいくつか見つけましたが、必要なのは、パケットの表示 (stdout など) を除外するのではなく、そのようなファイルをフィルター処理することです。出力は、一致したパケットが削除された pcap ファイルである必要があります。
dpkt (Python モジュール) が役立つのではないかと思いますが、可能であれば、既存の (C/C++) ツールを使用してこれを行うことをお勧めします。私は答えとしてコードを受け入れます(おそらく、ベンチマークを使用した良いdpktの例は、私にもそのように進むよう説得するでしょう;-))。
前もって感謝します!
答え:
Nim の回答によると、Wireshark/tshark を介してこれを行うことができます。他の人の参考のために、コマンドラインの例を示します。ここでは、udp パケット内の文字列の一致をチェックします (この例は、tcp または特定のプロトコル フィールド検索を行うために構築できます)。
tshark -r infile -R 'not udp matches "my_search_string"' -w outfile
再度、感謝します!