0

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

再度、感謝します!

4

1 に答える 1

2

このWeb サイトには、C で pcap ファイルを読み取る方法の非常に優れた例があります。Google で簡単に検索すると、ファイルを書き換える方法が明らかになります。

または、AFAIK Wireshark を使用すると、既にこれを実行できる場合があります。つまり、ファイルを開き、フィルターを適用してファイルを保存します (そして、Wireshark をすばやく実行すると、実際にこれが提供されていることがわかります)。

于 2012-03-01T11:22:54.567 に答える