我正在尝试用C#编写端口扫描程序。我对端口扫描方法做了一些研究。
如果你有兴趣,这些是 我发现有用的链接:
- http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Probing/index.html ^ PPT Presentation ^
- 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扫描
- TCP FIN扫描
- TCP XMAS扫描
- TCP空闲扫描
- TCP窗口扫描
- UDP扫描
醇>
但我只实施了TCP Connect() Scan
(显示为here)。但这很慢(测试每个端口需要> 0.5秒)。为了实现其余的方法,我需要数据包级访问。我需要创建原始数据包。是否有可能在C#中做到这一点?如果是这样怎么办?
答案 0 :(得分:2)
答案 1 :(得分:1)
你必须有一个驱动程序(NDIS)或类似的东西才能访问原始数据包。您可能还需要使用Native Win32 API并使用P / Invoke。
这是有所帮助的: http://www.codeproject.com/KB/IP/sendrawpacket.aspx