web-dev-qa-db-ja.com

特定のバイナリ/アプリ/プロセスIDのパケットをスニッフィングしますか?

パケットを実行中のバイナリに関連付ける方法はありますか?私は、従来のスニッフィング方法、さらにはdtraceを受け入れるでしょう。

トラフィックが非常に多いシステムで特定の問題が発生します。 「すべての」パケットをスニッフィングしてフィルタリングすることは非常に厄介な問題になり、問題のあるアプリ以外のすべてからパケットの放出を排除することは、このシナリオでは不可能です。

1
ylluminate

最近、私はこの問題の本当に素晴らしい解決策に出くわし、共有したいと思いました。 DTrace Bookにあります: http://www.dtracebook.com

ここから例をプルダウンすることをお勧めします: http://www.dtracebook.com/images/dtbook_scripts.tar.gz

OSXを実行していません。スクリプトを~/binの下のdtbookに抽出し、次のように適切なスクリプトを実行しました。

Sudo ~/bin/dtbook/Chap6/soconnect_mac.d 

これにより、すべてのプロセスとその接続が提供されます。私は通常、それをgrepにパイプして、今具体的にアプリを検索します。

1
ylluminate

そのシステムで実行しているOSについては言及していませんが、Windowsを実行している場合は、Microsoft Network Monitorを使用できます。MicrosoftNetworkMonitorは、各「会話」のプロセスIDを表示するため、分析に集中できます。プロセスIDごとのトラフィックの「フィルタリング」は、左側のペインでプロセスを選択し、右側のペインでそのトラフィックを表示するのと同じくらい簡単です。

3
joeqwerty

これが必要なものかどうかはわかりませんが、netstatはプロセスIDをネットワークポートに関連付けるのに役立ちます。次に、wiresharkでは、そのポート番号でフィルタリングして、特定のプロセスIDのパケットのみをスニッフィングできます。

2
sten

Windowsには、メーリングリストで説明されているように、これを行う実験的なビルドがあります。 http://www.wireshark.org/lists/wireshark-dev/201212/msg00069.html

1
patraulea