Подтвердить что ты не робот

Использование сырых сокетов с С#

Я хочу написать сканер портов в С#, и я не могу использовать SocketType.Raw, поскольку сырые сокеты были выведены из настольных версий окон. Я не могу использовать SharpPcap для какой-либо другой оболочки для Winpcap, поскольку я использую PPPoE для подключения к Интернету, а Winpcap не поддерживает PPP-устройства.

Мне нужно использовать библиотеку, которая реализует сырые сокеты и не полагается на winpcap.

Любые идеи? В основном мне нужно отправить SYN, получить SYN/ACK или RST, но не отправлять ACK обратно.

изменить:

Для людей, которые не считают, что RAW-сокеты исчезли из настольных версий Windows, см. здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v=vs.85).aspx

В Windows 7, Windows Vista, Windows XP с пакетом обновления 2 (SP2) и Windows XP с пакетом обновления 3 (SP3) возможность отправки трафика по сырым сокетам была ограничена несколькими способами:

  • Данные TCP не могут быть отправлены через сырые сокеты.
  • UDP-датаграммы с недопустимым адресом источника не могут быть отправлены через сырые сокеты. IP-адрес источника для любой исходящей UDP-дейтаграммы должен существовать в сетевом интерфейсе или датаграмма удаляется. Это изменение было сделано, чтобы ограничить способность вредоносного кода создавать распределенные атак типа "отказ в обслуживании" и ограничивать возможность отправки поддельных пакетов (TCP/IP-пакетов с поддельным IP-адресом источника).
  • Вызов функции bind с сырым сокетом для протокола IPPROTO_TCP запрещен.
    Примечание Функция bind с сырым сокетом разрешена для других протоколов (IPPROTO_IP, IPPROTO_UDP или IPPROTO_SCTP, например).
4b9b3361

Ответ 1

Обратите внимание на то, как это сделал nmap, и теперь я полагаю, что ваш вариант будет состоять в том, чтобы перейти на более низкий уровень в кадре ethernet.

"Nmap поддерживает только Ethernet-интерфейсы (включая большинство беспроводных карт 802.11 и многие VPN-клиенты) для сканирования необработанных пакетов. Если вы не используете параметры -sT -Pn, подключения RAS (такие как коммутируемые PPP-соединения) и некоторые VPN-клиенты не поддерживаются Эта поддержка была удалена, когда Microsoft удалила необработанную поддержку сокетов TCP/IP в Windows XP с пакетом обновления 2. Теперь Nmap должен отправлять кадры Ethernet более низкого уровня."

Итак - это приводит нас к:

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

Ответ 3

Попробуйте запустить Visual Studio как Adminitrator

Щелкните правой кнопкой мыши --- > запустите как администратор

Затем выполните программы с гнездами raW..