e.g. /dev/ttyS0
실제 직렬 포트를 통해 원격 장치와 통신하는 응용 프로그램을 실행하고 있습니다 . 정규화된 이름 대신 숫자 접미사를 프로그램에 전달하여 등을/dev/ttyS0
사용 하도록 이 애플리케이션을 구성할 수 있습니다 ./dev/ttyS1
나는 이 직렬 포트를 통과하는 트래픽을 스니핑하는 것과 비슷한 것을 사용하고 싶습니다
jpnevulator
. 그러면jpnevulator
모니터링할 애플리케이션이 연결되어야 하는 의사 터미널이 열립니다.
응용 프로그램이 를 통해 투명하게 연결되도록 포트 이름을 /dev/ttyS1
실제 의사 터미널(예: ) 에 다시 할당하는 방법이 있습니까 ? 파일 링크를 통해 이를 달성할 수 있나요?/dev/pty/23
/dev/pty/23
/dev/ttyS1
ln
답변1
내가 당신이라면 바이너리를 편집하고 /dev/ttyS%d
유사한 문자열을 대체한 다음 /dev/ptyX%d
(대체 문자열은 원래 문자열과 길이가 동일함) /dev/ptyX0
의사 터미널의 슬레이브 측 경로를 가리키는 심볼릭 링크를 생성할 것입니다.
다소 어색한 다른 솔루션이 많이 있습니다.
a) 시스템이 Linux인 경우 일시적으로 mount --bind /dev/pts/<pty used by the sniffer> /dev/ttyS2
(프로그램을 직렬 회선에 연결 2
)
b) 다시 제거 /dev/ttyS2
하고 pty에 대한 링크로 교체합니다.
c) qemu에서 실행하고 vm의 직렬 포트를 pty로 리디렉션합니다.
d) 일부 가짜 경로/파일 시스템 솔루션이 사용됨LD_PRELOAD
e) 네임스페이스, Unionfs, chroots 등