Реализация всех методов сканирования портов в C # / Создание необработанных пакетов низкого уровня в C # - PullRequest
6 голосов
/ 04 января 2010

Я пытаюсь написать сканер портов на C #. Я провел некоторое исследование методов сканирования портов.

Если вы заинтересованы, это ссылки, которые я нашел полезными:

  1. http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Probing/index.html ^ Презентация PPT ^
  2. http://www.auditmypc.com/freescan/readingroom/port_scanning.asp
  3. (старый) NMAP - Искусство сканирования портов: http://nmap.org/nmap_doc.html
  4. Методы сканирования портов: http://nmap.org/book/man-port-scanning-techniques.html
  5. Пример интерактивного сканирования портов: http://www.osischool.com/concept/communication/port-scanning

Подходя к моему вопросу. Это методы сканирования портов:

  1. TCP Connect () Сканирование
  2. TCP SYN Scan
  3. TCP FIN Scan
  4. TCP XMAS Scan
  5. Сканирование TCP NULL
  6. Сканирование окна TCP
  7. UDP Scan

Но я реализовал только TCP Connect() Scan (показано здесь ). Но это очень медленно (требуется> 0,5 сек для проверки каждого порта). Для реализации остальных методов мне нужен доступ на уровне пакетов. Мне нужно создать сырые пакеты. Возможно ли это сделать в C #? Если так, то как это сделать?

Ответы [ 2 ]

2 голосов
/ 04 января 2010

Это выглядело как хорошая оболочка для великолепной библиотеки WinPCap, когда я использовал ее давным-давно:

http://sourceforge.net/projects/sharppcap/

Я уверен, что теперь лучше.

1 голос
/ 04 января 2010

Вам понадобится драйвер (NDIS) или что-то подобное для доступа к необработанным пакетам. Вам также может понадобиться использовать Native Win32 API и использовать P / Invoke.

Вот что поможет: http://www.codeproject.com/KB/IP/sendrawpacket.aspx

...