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


18

この種の質問がここで適切であるかどうかはわかりませんので、間違っている場合はご容赦ください。

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

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

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

回答:


13

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

(予約されていないポートを使用する)ソケットの最大の問題は、アプリケーションが開いたり閉じたりするソケットが本質的に非常に動的であることです。netstat -bコマンドを実行すると、5秒間隔で実行した場合でも、リストされたアプリケーションごとに異なる結果が得られます。したがって、アプリケーションに割り当てられているすべてのポート番号に気付くことは非常に困難です。「TCPView」ツール(sysInternalsスイート)のアプリケーションでも同じことを観察していました。私は10秒のスパンでおよそ15 TCPソケット接続が自分のアプリケーションによって開かれたと、それらの多くはまた、殺されてしまったことを見た
RBT

1
Microsoft Network Monitorは、ネットワーク通信が発生したプロセスを追跡し、そのプロセスの下でグループ化できるため、ここで役立ちます。ただし、これが書かれて以来、Wiresharkの新しいメジャーバージョンがリリースされました。Wiresharkを使用してこのようなグループ化も可能ですが、しばらく使用していません。
ジョン

7

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


1
?彼はパケットを見たかった。
パセリエ

1

Microsoft Network Monitorは、トラフィックフローの原因となっているプロセスを表示します。


1

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


0

システム内部プロセスモニターを使用して、アプリケーションプロセス番号を取得し、他のシステム内部ツールをチェックアウトします。

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

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

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

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


-2

ただ、交換するMy_ApplicationアプリケーションのでPNAMEPID

netstat --programs | grep "My_Application"

Windows 7ではテストしていませんが、Linuxでは動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.