
特定のUDPポートを受信するブラックボックスプログラムがあります。私は選択したUDPポートでリッスンしたいです。
実行可能ファイルが別のポートでリッスンするように欺く方法はありますか?システムコールを傍受し、それを促進できるLD_PRELOADを注入できるライブラリがあると想像できます。
仮想マシンは確かに厳しい選択ですが、私にとっては選択肢ではありません。
答え1
ブラックボックスプログラムが特定のIPアドレスのみを受信するように指示できる場合は、127.0.0.10などの任意のループバックアドレスにバインドし、nc
127.0.0.10のポートと外部ポートでnetcat(AKA)を使用できます。 IP すべてのポート間にパイプを設定します。
プロキシに関するセクションがあるWikipediaのNetcatに関する記事があります。これを理解し、-uオプションを使用すると、デフォルトのTCPの代わりにUDPを使用できることに注意してください。
この例では、192.168.200.200 は外部 IP で、12345 はポートです。考えるブラックボックスモニタリング。 127.0.0.10はブラックボックスに使用するように指示したIPで、987はブラックボックスが大体使用するポートです。
mkfifo backpipe
chmod {something sane backpipe}
nc -l -u 192.168.200.200 12345 0<backpipe | nc 127.0.0.10 987 1>backpipe
mkfifo
システムに存在しない場合は Google "mknod Pipe"