サーバーと通信するアプリケーションがあります。このサーバーのIPが何か知りたいです。Wiresharkのようにすべてのトラフィックだけでなく、特定のアプリケーションからのすべてのトラフィックをキャプチャするにはどうすればよいですか?
サーバーと通信するアプリケーションがあります。このサーバーのIPが何か知りたいです。Wiresharkのようにすべてのトラフィックだけでなく、特定のアプリケーションからのすべてのトラフィックをキャプチャするにはどうすればよいですか?
回答:
Windows Sockets API呼び出しをインターセプトすることにより、特定のアプリケーションのすべてのネットワークトラフィックをキャプチャすることができます。これらは役立つツールです。
Luigi Auriemmaによって書かれたProxocket。API呼び出しをインターセプトし、キャプチャしたトラフィックをtcpdump形式のWireshark対応.capファイルとして保存します。ルイージ自身が提供する画像ほど説明的なものはありません。
NirSoftには、特定のプロセスのトラフィックをキャプチャできるSocketSniffアプリケーションがあります。絵も千の言葉に値する:
悲しいことに、言及したツールは64ビットアプリケーションをサポートしない可能性があります。ただし、32ビットと64ビットの両方のAPIをサポートするmhookライブラリを使用してカスタムインターセプターを記述することは可能です。
strace
が役立つかもしれません。こちらをご覧ください:askubuntu.com/a/12465/505090
Microsoft Network Monitorでは、「このアプリケーションとの間で送受信されるパケットのみをキャプチャする」と言うことができます。
最も使いやすいのはFiddler 2です。これは、PC上の任意のアプリケーションでHTTP、HTTPS、およびFTP(設定されている場合)の要求を表示できるデバッガです。
インストール後、特定のアプリケーションをターゲットにするには、メニュー項目「任意のプロセス」をクリックしてホールドし、開いているウィンドウにカーソルをドラッグしてリリースします。対象のプロセスを赤色のテキストで読み取って解放するメニュー項目を右クリックするまで、対象のアプリケーションのみが表示されます。
Windowsでは、TCPViewは必要な処理を行う必要があります。特定のプログラムが開いているすべてのTCP接続とUDP接続を表示できます。
ただし、これはプログラムが接続を開いて開いたままにしている場合にのみ役立つと思います。特定のプログラムによるすべてのネットワークトラフィックを表示するわけではありません。たとえば、ロード時に非常に短い電話ホームコールを行うことは可能ですが、TCPViewを実行するまでに接続は切断されます。
プロセスモニターは詳細を取得するのに役立つ場合がありますが、使用していないため、ネットワークソケットについてどの程度キャプチャするかわかりません。