WinDumpというコンパイル向けパッケージを使うと簡単に扱えることが分った。
WinDumpはTCPDumpと同じだが若干使い方が異なるので注意
wincap のインストール
wget http://www.winpcap.org/install/bin/WinPcap_4_1_2.exe
WinDumpの実行
C:/Users/takuya>windump.exe -D
起動し、デバイス一覧が表示されたらインストール成功していると思う
windump でデバイスを指定する。
デバイス2番(Wifi)のHTTPパケットを覗く
-i デバイス番号
HTTPパケットを覗くには次のようにする
takuya@letsnote:~$ windump -i 2 -n -X -s 5120 port http
デバイスさえ分れば,あとはTCPDumpと同じように使えます→TCPDumpのオプション
Windowsの場合は ネットワークカードを -D で調べてから指定します。ここ試験に出るよ!
HTTPのパケットを覗く例
C:\Users\takuya>windump -i 2 -n -X -s 5120 port http 0x01b0: a8ce fcfd fe4a a9ce 49a8 cd74 bdd9 8ac8 .....J..I..t.... 0x01c0: dfd5 e9f3 e5f0 f786 bfdb e2f0 f7e6 f1f7 ................ 0x01d0: ecf5 fae9 f5f9 93cc e249 a9ce cae0 ee81 .........I...... 0x01e0: bdd9 c2e2 efed f5fa cfe6 f19e d1e5 8bc0 ................ 0x01f0: dce4 f0f7 52ad d0c9 e5f0 71b5 d5fe ffff ....R.....q..... 0x0200: e3f2 f7e5 f3f8 dcef f677 b9d7 f2f8 fc96 .........w...... 0x0210: c6df 51ab cfd0 e6f1 f9fc fd6f b5d5 6ab8 ..Q........o..j. 0x0220: d6f9 fcfe 91cb e1b3 dbea b3d4 e7cb e6f1 ................ 0x0230: e7f3 f8d6 ecf4 daee f5bc dbeb a8d6 e7be ................ 0x0240: e0ed 81c4 ddd2 e7f1 98c7 df8b c8df 79c0 ..............y. 0x0250: dbe7 f4f9 5db2 d347 a8cd ffff ffff ffff ....]..G........ 0x0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x02f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0310: 0000 0000 0000 0021 f904 0100 0042 002c .......!.....B., 0x0320: 0000 0000 0b00 0e00 0007 7980 4206 3004 ..........y.B.0. 0x0330: 023f 0d05 428a 2b0c 408e 8e00 198a 1540 .?..B.+.@......@ 0x0340: 2117 091a 0740 0023 4202 081e 41a2 419a !....@.#B...A.A.
このように、簡単にWindowsでもTCPDumpを扱えることが分った。やってみなくちゃ分らない。
windump のCygwin用ラッパー
#!/usr/bin/env ruby require "kconv" require "stringio" #$stderr = StringIO.new IO.foreach("|/usr/local/bin/WinDump.exe #{$*.join(' ')}"){|line|puts line.kconv(Kconv::UTF8,Kconv::SJIS)}
便利なWinDumpテンプレ
IPv6をみたい
windump -i 2 -n ip6
パケットの中身をASCII表示
windump -i 2 -X -s 512
- -X
- でパケット中身表示
- -s
- で中身で表示制限(指定数値より大きいと切り捨て)
HTTPをみたい
windump -i 2 -X -s 512 in and port 80
条件を絞り込むときは and を使います