Javaを使用してUDPパケットをスプーフィングしようとしています。独自のRAWソケットを作成できる優れたJavaライブラリはありますか?
4 に答える
libpcapをラップする Java API を使用します。
libpcap には、生のパケットを送信できる「注入」機能があります。(もちろん、パケットを送信しようとしているマシンのルート権限または管理者権限が必要です。) jNetPcapやjpacpなど、利用可能な Java API が多数あります。たとえば、jpcap には、任意のパケットを送信できるクラスがあります。
これは、別のライブラリを必要とするものではありません。これは通常、 WinsockやBerkeleyソケットなど、プラットフォーム上の標準のソケットライブラリの一部です。関連するオプションは、しばしばと呼ばれASOCK_RAW
ます。
Windows XP SP2 (およびおそらく vista を含むより高いバージョンですが、それについては確信が持てません) では、raw ソケットが無効になっています。これらの制限は、TCP ソケットよりも UDP ソケットの方が多少厳しくないため、何をしようとしても実行できる可能性があります。そのリンクには、できることとその方法に関する情報が含まれており、おそらく役立つか、少なくとも可能かどうかを判断するのに役立ちます.
UDP パケットをスプーフィングするための Java プログラムを作成する場合は、Mike が提案するように jNetPcap または jpcap を使用します。なりすましだけが必要な場合 (プログラムを作成したくない場合) は、wiresharkを試してみます。