OSI モデルによると、データ パケットは複数の層で完成します。完全な TCP または UDP パケット(ヘッダーなどを含む) をプログラムで送信することは可能ですか?
たとえば、カスタム MAC ADD を含むパケットです。送信者(リクエスタ)の偽のIP?
OSI モデルによると、データ パケットは複数の層で完成します。完全な TCP または UDP パケット(ヘッダーなどを含む) をプログラムで送信することは可能ですか?
たとえば、カスタム MAC ADD を含むパケットです。送信者(リクエスタ)の偽のIP?
はい。RAWソケットを使用して送信する場合は、TCPまたはUDPパケットヘッダーを配置できます。RAWソケットには、システムへのルートアクセス権が必要です。
sock = socket(PF_INET, SOCK_RAW, IPPROTO_UDP);
または、Linux TCPスタックをバイパスして、イーサネットカードで直接write()およびread()を実行することもできます。
問題は、TCPで偽のIPを使用すると、実際のIPがそれを拒否するか、単にルーティングされないため、SYN要求からの応答が得られないことです。「ipスプーフィング」キーワードを照会すると、これについて調査できます。