Я когда-то об этом писал.... Есть такая вещь - WinPCap (
http://netgroup-serv.polito.it/winpcap/). На машину ставится драйвер, к проге подключатеся DLL-ина, в которой находятся функции для приёма и отправки произвольного пакета. Изучаешь формат пакетов, генеришь свои со своим IP и MAC-ом. Я писал прогу, которая создаёт "виртуальный сервер" - иммитирует комп с нужным IP и MAC-ом и перенаправляет пакеты с моего IP-шника куда нужно, попутно меняя в пакете IP и MAC и пересчитывает контрольные суммы.