Я пытаюсь написать сканер портов на C #. Я провел некоторое исследование методов сканирования портов.
Если вы заинтересованы, это ссылки, которые я нашел полезными: http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Probing/index.html ^ Презентация PPT ^ http://www.auditmypc.com/freescan/readingroom/port_scanning.asp (старый) NMAP - Искусство сканирования портов: http://nmap.org/nmap_doc.html Методы сканирования портов: http://nmap.org/book/man-port-scanning-techniques.html Пример интерактивного сканирования портов: http://www.osischool.com/concept/communication/port-scanning
Если вы заинтересованы, это ссылки, которые я нашел полезными:
Подходя к моему вопросу. Это методы сканирования портов:
TCP Connect () Сканирование TCP SYN Scan TCP FIN Scan TCP XMAS Scan Сканирование TCP NULL Сканирование окна TCP UDP Scan
Но я реализовал только TCP Connect() Scan (показано здесь ). Но это очень медленно (требуется> 0,5 сек для проверки каждого порта). Для реализации остальных методов мне нужен доступ на уровне пакетов. Мне нужно создать сырые пакеты. Возможно ли это сделать в C #? Если так, то как это сделать?
TCP Connect() Scan
Это выглядело как хорошая оболочка для великолепной библиотеки WinPCap, когда я использовал ее давным-давно:
http://sourceforge.net/projects/sharppcap/
Я уверен, что теперь лучше.
Вам понадобится драйвер (NDIS) или что-то подобное для доступа к необработанным пакетам. Вам также может понадобиться использовать Native Win32 API и использовать P / Invoke.
Вот что поможет: http://www.codeproject.com/KB/IP/sendrawpacket.aspx