我正在尝试用 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.osisschool.com/concept/communication/port-scanning
来回答我的问题。这些是端口扫描方法:
- TCP Connect() 扫描
- TCP SYN 扫描
- TCP FIN 扫描
- TCP XMAS 扫描
- TCP NULL 扫描
- TCP 窗口扫描
- UDP扫描
但我只实现了TCP Connect() Scan
(如图所示)。但这太慢了(测试每个端口需要 >0.5 秒)。为了实现其余的方法,我需要数据包级别的访问。我需要创建原始数据包。有可能在 C# 中做到这一点吗?如果是这样怎么做?