WiresharkによるUDP解析 | Hello, Stupid World!

Hello, Stupid World!

いろいろとメモ代わりに書いていきます。

今回はUDPの解析です。



やはりTCPと比較すると、かなり小さいです。
それもTCPは確実に相手に届ける為にシーケンス番号(Seq)やら確認応答番号(Ack)やら
送ってますが、UDPは送りっぱなしのプロトコルなのでそういう情報がヘッダに無いのです。

WiresharkでUDPのヘッダを見てみると、送信元ポート、送信先ポートとデータ長、チェックサムの
4つしか無い事が分かります。
それぞれ2バイトで合計8バイトしかありません。
TCPであった各種制御フラグなんかも無いです。

これだけで終わると詰まらないので今回はこのUDPポート(54133)が何のプログラムで使われているか
調査してみようと思います。

まずは、netstatコマンドで開いているポートと使っているプロセスのIDを調べます。
コマンドプロンプトを開いてnetstat -anoと入力します。

各オプションは-aが全てのポートを表示、-nがIPアドレスを数値のまま表示、-oがプロセスIDを
表示します。
忘れた場合にはnetstat -?とすればヘルプが表示されます。
あと、-nとするのはサーバ名などをDNSから引くと時間がかかる為です。

左からプロトコル、送信元IPアドレス、送信先IPアドレス、状態(UDPは空)
、プロセスIDです。
このコマンドにより、UDPの54133ポートはプロセスIDが3720という事が
分かりました。

次にタスクマネージャを開きます。
タスクバーを右クリックして「タスクマネージャの起動」を選択。

プロセスのPID列を見ていきます。
PID列が表示されていない場合にはタスクマネージャのメニューから
「表示」→「列の選択」としてダイアログを出し、PIDにチェックをつけて
OKを押します。


見ていった所、PIDが3720のプロセスは・・・
イメージ名がSkype.exe、説明にSkypeとありました。
という事で今回のUDPを使っていたプログラムはSkypeでした。

同じことがTCPでももちろんできます。
何に使っているか分からないポートを調べる場合など、便利ですよ。