Por redirecionamento de porta UDP executável possível?

3

Eu tenho um programa de caixa preta que escuta em uma porta UDP específica. Eu gostaria que ele ouvisse uma porta UDP de minha escolha.

Existe uma maneira de enganar o executável para ouvir em uma porta diferente. Eu posso imaginar que existe uma biblioteca que pode ser injetada com o LD_PRELOAD que pode restringir as chamadas do sistema e facilitar isso.

Uma máquina virtual, claro, é uma opção pesada, mas isso não é uma opção para mim.

    
por Catskul 05.11.2013 / 23:45

1 resposta

1

Se você puder dizer ao programa de caixa preta para ouvir apenas um endereço IP específico, poderá vinculá-lo a um endereço de loopback arbitrário, como 127.0.0.10, e usar netcat, AKA, nc , para canalizar entre a porta em 127.0.0.10 e o que você quiser no IP externo.

Há um artigo sobre o Netcat na wikipedia com uma seção sobre proxy. Você vai querer entender isso e saber que a opção -u permite usar o UDP em vez do TCP padrão.

Neste exemplo, 192.168.200.200 é o IP externo, 12345 é a porta que você deseja que a caixa preta escute. 127.0.0.10 é o IP que você disse ao blackbox para usar e 987 é a porta que a caixa insiste rudemente no uso.

mkfifo backpipe
chmod {something sane backpipe}
nc -l -u 192.168.200.200 12345 0<backpipe | nc 127.0.0.10 987 1>backpipe

Se você não tem mkfifo em seu sistema, pesquise no "canal mknod"

    
por 06.11.2013 / 01:32