각 실행 가능한 UDP 포트를 리디렉션할 수 있습니까?

각 실행 가능한 UDP 포트를 리디렉션할 수 있습니까?

특정 UDP 포트를 수신하는 블랙박스 프로그램이 있습니다. 내가 선택한 UDP 포트에서 수신 대기하기를 원합니다.

실행 파일이 다른 포트에서 수신 대기하도록 속이는 방법이 있습니까? 시스템 호출을 가로채서 이를 촉진할 수 있는 LD_PRELOAD를 주입할 수 있는 라이브러리가 있다고 상상할 수 있습니다.

가상 머신은 확실히 가혹한 선택이지만 나에게는 선택 사항이 아닙니다.

답변1

블랙박스 프로그램이 특정 IP 주소만 수신하도록 지시할 수 있는 경우 이를 127.0.0.10과 같은 임의의 루프백 주소에 바인딩한 다음 nc127.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"

관련 정보