« Distraction-free Web Reading ー Webの記事を読むのに集中できるツール | トップページ | 実は速読法が身についていたらしい »

2010年9月22日

WiresharkのCLIコマンドtshark

WiresharkにCLIコマンドtsharkが付属している。通常の解析はGUIで十分だが、数十個のトレースファイルから特定のパケットを見つけるときはtsharkが便利だ。ファイルをひとつずつGUIで開いて検索していては埒があかない。

tsharkに渡すパスはかならずASCII文字にすること。tsharkは日本語のパス名を正しく処理できない。こんなエラーが出る。

tshark: The file "D:\テスト\copy_to_temp.pcap" could not be created because an invalid filename was specified.

tsharkにフィルタを渡して、Create AndX要求パケットだけを抽出する。結果はテキストファイルで出力する。PowerShellでこの処理を組んでみた。

Get-Item *.pcap | foreach ($_) {& 'C:\Program Files\wireshark\tshark.exe' -V -R 'smb.cmd == 0xa2 && ip.src == 192.168.185.15' -r $_ | Out-File -encoding default -filepath $_".txt"}

テキストエディタやgrepでさらに絞り込んで、目的のパケットを探す。たとえば、どんなファイルがオープンされているかを見るには、次のようなgrepを実行すればよい。あらかじめGnuWin32のgrepをインストールしておく。

"c:\Program Files\GnuWin32\bin\grep.exe" "  File Name:" *.txt > filename.txt

パケット抽出とgrepを一気にやりたいところだが、PowerShellのパイプ処理は前段の結果をすべてメモリに展開するらしく、大量のメモリを消費する。もしやるとすると、こう書けばよい。

Get-Item *.pcap | foreach ($_) {& 'C:\Program Files\wireshark\tshark.exe' -V -r $_ | & 'C:\Program Files\GnuWin32\bin\grep' '  File Name:' | Out-File -encoding default -filepath $_".txt"}

|

« Distraction-free Web Reading ー Webの記事を読むのに集中できるツール | トップページ | 実は速読法が身についていたらしい »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Distraction-free Web Reading ー Webの記事を読むのに集中できるツール | トップページ | 実は速読法が身についていたらしい »