wiresharkで印刷可能なテキストのみ(またはその他のパケットプロパティ)をエクスポートする方法

StackOverflow https://stackoverflow.com/questions/4568126

質問

短いストーリー-Wiresharkを使用して、ベンダーツールからOracleデータベースにSQLSをキャプチャしています。それはすでにTNSプロトコル用のデコーダーを持っています(これは素晴らしいです)、私はSQLのテキストにアクセスできます

Right Click->Copy->Bytes(Printable Text Only). 

問題は、大量のパケットがあり、それぞれを右クリックすることで何年もかかる可能性があることです。 Wiresharkから「印刷可能なテキストのみ」をエクスポートする方法があるのではないかと思っていました。理想的には、ステートメント付きのテキストファイルが必要です。

どんな助けも高く評価されます。

役に立ちましたか?

解決

TNSでそれを行う方法がわかりません。しかし、たとえばHTTPリクエストを見るために、TSharkを使用してこのようなことをすることができます。

tshark -T fields -e http.request.uri

したがって、TNSデコーダーのオプションを確認できれば、そのフィールドをつかみ、出力をファイルにリダイレクトできるはずです。

他のヒント

最終的にこれを行うことができました。まず、TNSパケットをキャプチャするtsharkを使用します。

tshark -R tcp.port==1521 -T fields -e data.data -d tcp.port==1521,tns > input.txt

その後、以下のホームブリュールビースクリプトを使用して、バイトからテキストに変換できます。

file = ARGV[0]
print_all = ARGV[1]

File.open(file, "r").each {|line|
  line.gsub(",", ":").split(':').each {|byte|
    chr = Integer('0x' + byte).chr
    print chr if ((' '..'~').include?(chr) or chr == "\n") or (print_all.downcase == 'all' if print_all)
  } if !line.chomp.empty?
}

例は次のとおりです。

encode.rb input.txt > output.txt

入力から出力までのみ印刷可能なテキストをエクスポートします

encode.rb input.txt  all > output.txt

すべてのテキストを入力から出力にエクスポートします

私のために働いたすべてのものを見る簡単な方法はただ Right Click -> Follow TCP Stream.

メモ:印刷できない文字が表示されます .s。抽出したいすべてのテキストの間にこれらの束がある場合(私のためにあったように)、 ASCII, 、それを保存して、お気に入りのテキストエディター(私のためのVIM)に開き、検索を実行して、 /\.//g.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top