2012-03-01 9 views
0

tcpdumpで収集された大きなpcap(パケットキャプチャ)ファイルがあります。特定の文字列を含むパケットを除外したいと思います。私の出力はまだpcap形式にしたい。私は、pcapファイルから正規表現に一致するパケットだけを表示するいくつかの方法を見つけましたが、必要なのはパケットの表示(例えばstdout)をフィルタリングするのではなく、そのようなファイルをフィルタリングすることです。出力は、一致したパケットが削除されたpcapファイルである必要があります。コンテンツ正規表現でpcap(例:tcpdump)ファイルをフィルタリングするにはどうすればよいですか?

私はdpkt(pythonモジュール)が助けになると思われますが、可能であれば既存の(C/C++)ツールを使用してこれを行うことをお勧めします。私は答えとしてコードを受け入れます(多分ベンチマークの良いdpktの例は私にちょうどその方法にも納得するでしょう;-))。

ありがとうございます!

回答:

パーニムの答え、それはWiresharkの/ tsharkのを経由して、これを行うことが可能です。再び

tshark -r infile -R 'not udp matches "my_search_string"' -w outfile 

ありがとう:他人の参考のために、ここで私はUDPパケット(この例では、検索tcpまたは特定のプロトコルフィールドを行うために構築することができます)内の文字列の一致を確認する例のコマンドラインは、です!

+0

ディスプレイをフィルタリングすることができれば、stdoutをファイルにリダイレクトできますか? –

+0

私の要件は、出力がpcapであり、stdoutに出力されるようにパケットの文字列表現ではないということです。 – JJC

答えて

2

このwebsiteには、Cでpcapファイルを読む方法の非常に良い例があります。すばやくgoogle検索すると、ファイルを書き直す方法がわかります。

AFAIK Wiresharkを使用すると、ファイルを開き、フィルタを適用してファイルを保存することができます(Wiresharkのクイック実行 - これが実際に提供されていることがわかります)。

+0

はい! tsharkはこれを行います。ポインタありがとう。コマンドラインのフォーマットを改善するために質問を更新しています。 – JJC

関連する問題