web-dev-qa-db-ja.com

アプリケーションを分離し、インターネット経由で送信しているパケットを確認します

この種の質問が適切であるかどうかはわかりませんので、私が間違っていても許してください。

ここに問題があります。特定のプログラムがインターネットに送信しているものを確認したいのですが、コンピューター上には、インターネットを使用しているアプリケーションやサービスがたくさんあるということです。したがって、私が興味を持っているアプリがどのパケットを送信したかを把握することは不可能です。

1つの方法は、他のすべてのアプリケーションを閉じようとすることですが、これは不可能です。

それで、特定のアプリケーションを分離する方法はありますか? windows7で作業していて、wiresharkでパケットをキャプチャしています

19
Salvador Dali

Wiresharkを使用している場合、ポート番号はアプリケーション名に自動的に解決されないため、探している情報を絞り込むためにもう少し行う必要があります。ネットワークを介して通信するためにTCP/IPを使用するすべてのアプリケーションはポートを使用するため、ネットワークスタックはセグメントの配信先を認識します(アプリケーションアドレスと呼びます)。

特定のポートでサーバーアプリケーションに接続するクライアントには、ダイナミックレンジからポート番号が動的に割り当てられます。したがって、まず、アプリケーションが開いているTCP/UDP接続を確認する必要があります。

netstat -b

コマンドラインで、接続を作成した実行可能ファイルの名前を含む接続のリストを表示します。各実行可能ファイルには、127.0.0.1:xxxxxとしてリストされている1つ以上の接続があります。Xは接続のローカルポート番号です。

次に、wiresharkで、次の1つ以上のフィルターを使用して、そのポートから発信された、またはそのポートを宛先とするパケットを表示するように指示する必要があります。

tcp.port == xxxxxまたはudp.port == xxxxx

表示する接続ごとにor tcp.port == xxxxxを追加します。

これにより、アプリケーションが開いている接続のすべてのトラフィックを確認でき、Wiresharkには未加工のTCP/UDPセグメントだけが含まれるのではなく、それらのポート番号を使用したさまざまなアプリケーションレイヤープロトコル(HTTPなど)も含まれます。

アプリケーションが1つのサーバーとのみ通信しているように見える場合は、そのサーバーのIPアドレスを使用して、次の条件でフィルタリングできます。

ip.addr == x.x.x.x
13
john

MicrosoftのProcess Monitor を使用する場合、特定のプロセスからのネットワーク通信のみを表示するようにフィルターを変更できます。パケットの内容はわかりませんが、アプリが通信しているホストを示します。

7
longneck

Microsoftネットワークモニターは、トラフィックフローを担当するプロセスを示します。

1
joeqwerty

私は Microsoft Message Analyzer が同じ目的に非常に役立つことを発見しました。ネットワークトラフィックをキャプチャし、プロセスツリーごとに集約できます。

1
YaoLen

システム内部プロセスモニターを使用してアプリケーションプロセス番号を取得し、次の場所にある他のシステム内部ツールをチェックしてください。

https://docs.Microsoft.com/en-us/sysinternals/

Cmd.exeを開いて実行し、netstatコマンドラインオプションを表示します。netstat/? 。

次にnetstat -bo 1 >> c:/test.logを実行します。これにより、継続的に更新されるファイルで特定のアプリケーションのネットワーク接続データを見つけることができます。

コマンドウィンドウにctl-Cを入力して、netstat -bo >> c:/test.logがログに書き込むのを停止する必要があることに注意してください。

0
Jef Mar