8

rdpcapScapy の機能を使用して PCAP ファイルを読み込んでいます。Scapy の HTTP サポートへのリンクで説明されているモジュールも使用します。これは、すべての HTTP 要求と応答、およびそれらに関連するパケットを取得する必要があるためです。

rdpcap大きな PCAP ファイルを解析すると、関数の読み取りに時間がかかりすぎることに気付きました。

pcapファイルをより速く読み取るための解決策はありますか?

4

4 に答える 4

11

Scapy にはsniff、pcap ファイルを読み取るために使用できる別の方法もあります。

def method_filter_HTTP(pkt):
    #Your processing

sniff(offline="your_file.pcap",prn=method_filter_HTTP,store=0)

rdpcappcap ファイル全体をメモリにロードします。したがって、多くのメモリを使用し、あなたが言ったように遅いです。whilesniffは一度に 1 つのパケットを読み取り、提供された関数に渡しprnます。このstore=0パラメータにより、パケットが処理されるとすぐにメモリから削除されます。

于 2016-06-22T09:41:11.283 に答える
4

ロード時間が予想よりも長いことに同意しますが、ファイルが解析されて高度に構成されたオブジェクトの配列が生成されている可能性があります。私がしなければならなかったことはeditcap、パケットキャプチャを切り刻んで読みやすくすることでした。例えば:

$ editcap -B 2013-05-2810:05:55 -i 5 -F libpcap inputcapture.pcap outputcapture.pcap

注意: このコマンドのスイッチの完全な説明は、ここで入手できます。

また、ファイルを解析できる scapy の関数-F libpcapを取得するには、(少なくとも私にとっては) その部分が必要であるように思われました。pcap(これは、デフォルトの pcap ファイル出力形式であるはずですが、何らかの理由で、これは私には当てはまりませんでした。入力ファイルと出力ファイルのファイル タイプを確認するには、capinfos(たとえば、単純に と入力しますcapinfos your_capture.pcap)。

capinfosとの両方editcapが WireShark ディストリビューションで利用可能です。

于 2013-05-30T14:04:16.847 に答える