2017-02-26 3 views
0

大きなpcapファイル(それぞれ〜100MB)があり、辞書ファイル(txt)の文字列を含むパケットを除外したいと思います。単語1がPCAPファイル(?TCPペイロードにする必要があります)内のどこにでも存在する場合、私はその文字列を削除するか、単にPCAPからそのパケットを削除したい、だから、pythonを使ってpcapファイルから文字列をフィルタリングする方法はありますか?

line 1: word1 
line 2: word2 
line 3: word3 
line 4: word4 

:辞書ファイルが同じようにフォーマットされますファイル。 これを効率的に(速く)達成する方法はありますか?

+0

文字列が含まれているファイルから行を削除するとしますか?あなたは何をしようとしているのか、これまで試みてきたことを明確にし、いくつかの入力と期待される出力を見せたいかもしれません。メモリの制約がある場合は、制約するメモリの量を指定できますか? – JohnD

+0

私は今のところメモリの制約がありません。入力ファイルは、ネットワーク内のさまざまなホストのトラフィックを含む通常のpcapファイルです。私はいくつかのホストのTCPストリームに従ったとき、私はpcapファイルには望ましくない多くの不適切なコンテンツ(アダルトコンテンツ)を見つけました。ですから、私はpcapファイルからそれらのパケット/フレームや行を取り除きたいと思います。 – Scissor

+1

stackoverflowはコード作成サービスではないので、私はPythonでpcapを修正する方法を探しており、あなた自身で特定の修正を実装することを望んでいます。このように解釈されると、あなたの質問は[PythonでのPCAP修正]の複製です(http://stackoverflow.com/questions/32250981/pcap-modification-with-python) –

答えて

0

私はこれを自分で考え出しました。他のユーザにとっては、TsharkはTCPストリーム内の文字列を検索するのに便利です。以下は、送信元と送信先のIPアドレスを文字列を検索し、出力したいしたい場合に便利です。

tshark -r <capture-file> -T fields -e ip.src -e ip.dst -e data |\ 
grep `echo -n "<ascii-string>" | xxd -p` |\ 
cut -f 1,2 

だから、私は疑問に望んでいたものを達成するために、bashスクリプトを次のように便利になります

value=`cat bad_words.txt` 

for i in ${value[@]}; do tshark -r my_test.pcap -T fields -e ip.src -e ip.dst -e data |\ 
grep `echo -n $i | xxd -p` |\ 
cut -f 1| uniq > $i; echo $i; done 
関連する問題