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 の応答かなー。