Я пытаюсь написать сканер портов на С#. Я провел небольшое исследование методов сканирования портов.
Если вам интересно, вот ссылки, которые я нашел полезными:
- 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-подключение () Сканирование
- Сканирование TCP SYN
- TCP FIN-сканирование
- XMAS-сканирование TCP
- НУЛЕВОЕ сканирование TCP
- Сканирование окна TCP
- UDP-сканирование
Но я реализовал только TCP Connect() Scan
(показано здесь). Но это очень медленно (для проверки каждого порта требуется> 0,5 секунды). Для реализации остальных методов мне нужен доступ на уровне пакетов. Мне нужно создать необработанные пакеты. Возможно ли это сделать на С#? Если да, то как это сделать?