Использование сырых сокетов с C # - PullRequest
14 голосов
/ 23 сентября 2011

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

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

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

edit:

Для людей, которые не верят, что сокеты 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, например).

Ответы [ 3 ]

2 голосов
/ 24 сентября 2011

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

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

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

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

0 голосов
/ 21 января 2014

Попробуйте запустить Visual Studio от имени администратора

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

Затем запустите программы с разъемами raW ..

0 голосов
/ 23 сентября 2011

Точно так же:

http://www.winsocketdotnetworkprogramming.com/clientserversocketnetworkcommunication8h.html

Кроме того, в какой момент он был удален из Windows?Я сделал чат-клиент для друга на прошлой неделе;также, http://msdn.microsoft.com/en-us/library/system.net.sockets.sockettype.aspx, все еще показывает, что он активен.

...