ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

面白いもの発見

WinPcap ( http://www.winpcap.org/ )
Windows で動くパケットキャプチャライブラリ。


何が面白いって、これを使うと RawPacket を簡単に送受信できるのですよ。
Ethernet のレベルのパケットを送受信できるから、パケットスニッフどころか
パケットの捏造までできてしまう!!
ARP, IP, TCP と実装すれば仮想LANカードを作ることだって可能!!


こんな楽しいものを放置する手はありえないっ。


…ってなわけで。とりあえず ARP 応答だけ実装してみました。

C:\Program Files>arp -a
Interface: 192.168.1.2 on Interface 0x1000003
  Internet Address      Physical Address      Type
  192.168.1.1           xx-xx-xx-xx-xx-xx     dynamic
  192.168.1.16          11-22-33-44-55-66     dynamic

どうだー!!
192.168.1.16 は存在しないはずの IP アドレス。
11:22:33:44:55:66 は存在しないはずの MAC アドレス。


WinPcap、使い方も難しいのかと思いきや、

pcap_open_live → pcap_next_ex / pcap_send_packet → pcap_close

って、めっちゃ"お約束"じゃねぇかっ!

fopen → fread / fwrite → fclose

とか

socket → recv / send → closesocket

全然かわらねぇよっっ!!


すばらしい。
とりあえずしばらくもぞもぞと遊んでみることに。
次は ping の応答かなー。