目次

Windows-簡単パケットキャプチャ

パケットキャプチャと言えば、普通はスイッチにポートミラーの設定を行い、WireSharkがインストールされたPCで流れるパケットをキャプチャする。
というのが一般的(?)かと思うが、実はWindows7/2008R2以降は、何もインストールしないで(標準コマンドのみで)パケットのキャプチャができるようになっている。

取得方法

パケットの取得は、SEの人にはおなじみのnetshコマンドで行う。
とりあえず取得するだけなら、下のようにコマンドを実行するだけでOK。

C:\Windows\System32> netsh trace start capture=yes

ほら。簡単。
画面に出力される情報を見れば、出力先は“C:\Users\<現在のユーザ>\AppData\Local\Temp\NetTraces\NetTrace.etl”となる。
ちょっと階層深くて見に行くの面倒。
そんな時は出力先を指定してやる。

C:\Windows\System32> netsh trace start capture=yes traceFile=C:\path\to\file.etl

こんな感じ。簡単。
確認したい現象を何度も繰り返し取得するなら、traceFileのファイル名をこんな風にしとくとか。

C:\Windows\System32> netsh trace start capture=yes traceFile="C:\path\to\file_%date:/=%_%time::=%.etl"

※traceFileのパラメータはダブルクォートで囲んでおかないと、%time::=%の出力は午前中だと空白が入ります。。。
うーん。簡単。

内容の確認

さて。
インストールなしでできるのはパケットの取得だけで、WireSharkっぽいアプリケーションで内容を確認したい場合は、ソフトのインストールが必要。
インストールするアプリケーションはMicrosoft Message Analyzer
このあたりからダウンロードする。
英語版のみなので、頑張って使おう。
でもWireSharkも英語版だけだし、何とかなる!
起動したら、Quick Openで取得しておいたetlファイルを指定すれば確認が可能。

WireSharkで見たい!

という人も大丈夫。
Microsoft Message AnalyzerはetlファイルをWireSharkで読めるcapファイルに変換する機能を持っている。
Quick Openでetlファイルを開いたらSave Asをクリックし、All Messagesを選択した状態でExportボタンをクリックし、拡張子がcapになるようにエクスポートすれば、ちゃんとWireSharkでも読めます!