Microsoft Network Monitor 3.4の1歩目あたり

パケットキャプチャリング

Microsoft Network Monitor

Windowsユーザ以外お断り

かなり使いやすく便利なパケット監視ツールです。結構使ってます。
冒頭で152km/hの直球を投げた通り、対応プラットフォームがwindowsのみなので、Maclinuxなら従来どおりWiresharkでいいんじゃないんでしょうか

基本

起動 > New Capture > Start でキャプチャが始まります。
各プロセスごとの通信で分けて表示してくれるので素のままでも十分使えます。

フィルタ

とはいえ、全ての通信を拾い上げるので目的のものを探すのは煩雑でしょう。
そこで必ず利用することになるのがフィルタです。
(今回書きたかったのはこれ)


こういうウィンドウがあるので直接書き込み、Apply を押して適用していく形になります。
フィルタは保存することができ、保存したものを読み込むことができます。
また、RemoveはDisplay Filterの入力内容を削除するのではなく、フィルタの適用を無効にするという紛らわしいものなので注意。

読み込んだフィルタはDisplay Filterの現在のカーソル位置に挿入される形になるので、
フィルタはどちらかというとスニペットみたいな短い形のものを組み合わせると汎用的に使えていいのではないかと思います。
(とはいえ文法的に複雑なことをするわけでもないので、プロセスとその目的ごとに保存する方がいいのかな)

文法

付属のマニュアルはまるで役に立たないので、TechNetのこちらの記事を参考にした方がいいです。

基本的には、[Protocol].[Data Fields], または [Properties] の形で対象を選択し、
論理演算子またはContains()で値に合致するかどうかを指定していくことになります。
(Protocol等の記述は大文字小文字の区別はしないようです)


また、適切なプロトコルの次に . を入力した段階で入力できるデータフィールドがインテリセンスのようにプルダウンで表示されるので、上記リンクのマニュアルが最初から最後まで必要ってわけでもないです。
更に、フィルタの形式が不適切だった場合は警告が発せられる等、細かいところで便利なエディタになってます。

上述で用いた画像では HTTP.Request.Command == "GET" をフィルタに記述していますが、
これはまんまGETメソッドでhttpリクエストを送信しているパケットのみを抽出するということになります。


こんな感じに条件式を重ねることも可能。
() による優先順位上げが使えるのも確認済み。

(条件式1
&& 条件式2)
|| (条件式3)

みたいな

//

本当はここから目的のパラメータだけ加工して取り出すプリセットみたいなものが欲しかったんですがね
CやC#用にAPIが公開されてるので「そこは自分でやれ」ってことでしょうか?