I just took a glance at the introduction of libnet,
seems it mentioned support for udp,ip,but not tcp?
Does it support tcp at all?
ここを見てみるとtcp関連の機能がありそうなので、はい、libnetでtcpセグメントをインジェクトできます。
int libnet_build_tcp(u_short sport, u_short dport, u_long seq,
u_long ack, u_char control, u_short win, u_short urg,
const u_char *payload, int payload_s, u_char *buf);
libnet_build_tcp() は、TCP (伝送制御プロトコル) パケットを構築します。提供されるのは、送信元ポート、宛先ポート、シーケンス番号と確認応答番号、制御ビット (複数のフラグを設定するために論理 OR で結合できます。以下の例を参照)、アドバタイズされたウィンドウ サイズ、緊急ポインター、ポインターです。オプションのデータ ペイロード、ペイロード サイズ、そして最後に、パケット用に事前に割り当てられたメモリ ブロックへのポインター。データ ペイロードのない TCP ヘッダーを作成するには、TCP_H バイトのみを割り当てる必要があります。