2010-01-27 3 views
3

При тестировании некоторых функций приема драйверов сетевого устройства мне нужно отправить специальные пакеты на провод. Я знаю, что мне нужно открыть сырой сокет и вытолкнуть байты. Есть ли какой-нибудь известный пример (C, perl, какой-либо) код, уже доступный для игры на этом уровне?Как я могу вставлять сырые пакеты в свою сеть

(добавлено позже) Я бы предпочел не-платформенные ответы, они будут наиболее полезными для всех.

+0

Следует отметить, что нет сокетов в Windows XP SP2 и позже ... –

ответ

0

Я обнаружил, что здесь есть хороший пример, например, Security-Freak, что потребовало лишь небольшой модификации для гибкости. Я надеюсь, что на других языках будет больше ответов.

+0

Возможно, это плохая форма, поэтому выберите свой собственный ответ, но это то, что я искал и нашел для себя: простой, быстрый и грязный код, который уже существует. –

2

http://www.codeproject.com/KB/IP/sendrawpacket.aspx

Там уже существующий проект, который может быть в состоянии помочь вам в этом.

+0

Хммм - это выглядит как платформа конкретного ответа (ASPX), и я должен настроить какой-то аккаунт, чтобы получить доступ? Ба. –

0

Я не могу придумать никаких примеров. Но вы должны просто открыть сокет UDP на любой IP-адрес, который вам нравится, и начать записывать на него данные. Убедитесь, что UDP или это не будет работать.

2

Посмотрите на документацию для packet. В принципе, вы создаете сокет с SOCK_RAW или SOCK_DGRAM, а затем записываете в сокет, используя обычный сокет. Однако отправленные вами данные будут помещаться прямо в линию, а не автоматически получать заголовки, необходимые для большинства сетевых взаимодействий.

1

Кажется мне, что вы ищете инструмент для создания собственных пакетов, Scapy такой инструмент часто используется в индустрии безопасности (например, pentesters).

Demo доступен: http://www.secdev.org/projects/scapy/demo.html

Смежные вопросы