6

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 スキャン
  3. TCP FIN スキャン
  4. TCP クリスマス スキャン
  5. TCP NULL スキャン
  6. TCP ウィンドウ スキャン
  7. UDP スキャン

しかし、私は実装しただけですTCP Connect() Scanここに表示)。しかし、これは非常に遅いです (各ポートのテストに 0.5 秒以上かかります)。残りのメソッドを実装するには、パケット レベルのアクセスが必要です。生のパケットを作成する必要があります。C#でそれを行うことは可能ですか? もしそうなら、それを行う方法は?

4

2 に答える 2

2

これは、私がずっと前に使用したときに、優れた WinPCap ライブラリの優れたラッパーのように思えました。

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

きっと今は良くなっています。

于 2010-01-04T18:52:34.280 に答える
1

生のパケットにアクセスするには、ドライバー (NDIS) などを用意する必要があります。また、ネイティブ Win32 API を使用し、P/Invoke を使用する必要がある場合もあります。

ここに役立つものがあります: http://www.codeproject.com/KB/IP/sendrawpacket.aspx

于 2010-01-04T18:41:01.180 に答える