ptrace 제어를 다른 프로세스로 이전

ptrace 제어를 다른 프로세스로 이전

리버스 엔지니어링 Stackexchange에서 다음과 같은 질문을 했습니다.https://reverseengineering.stackexchange.com/questions/15169/transferring-control-of-ptrace-to-another-process 왜냐하면 나는 ptrace 질문이 거기에 가장 적합하다고 생각하기 때문입니다.

사람이 너무 적어서인지, 리눅스에 익숙하지 않아서인지는 물리지 않았다. 아무튼 여기에 물어봐야겠다고 생각했어요.

프로세스 A를 만들고 싶습니다. AI에서 두 번째 프로세스 B를 시작하고 싶습니다. A가 시스템 리소스를 계속 모니터링하기를 원합니다. 특정 조건이 충족되면 A가 B를 ptrace하고 gdb를 시작한 다음 ptrace 제어를 gdb로 전송하고 싶습니다.

가능합니까? 그렇지 않은 경우 A가 B를 일시 중지하고 B가 연결된 gdb를 시작한 다음 B를 "일시 중지"할 수 있는 방법이 있습니까?

답변1

댓글을 달 수는 없지만 아직 물린 적이 없습니다.

가장 큰 질문은 왜 gdb로 전환하고 ptrace를 계속 사용하지 않는가입니다.

어려운 부분은 확실히 제어권을 ptrace에서 gdb로 옮기는 것입니다. 구체적으로, 프로세스를 중지된 상태로 유지하고 GDB가 거기에서 연결하고 디버깅을 재개하도록 하려면 ptrace 연결이 끊어지면 하위 프로세스가 실행을 다시 시작합니다. 이는 제가 아는 한 불가피합니다.

어쩌면 다른 방법이 있을 수도 있습니다. 어쨌든 GDB로 전환하는 조건은 A가 모니터링하는 시스템 리소스에 따라 달라지나요, 아니면 B에 국한된 조건인가요?

내 기억이 정확하다면 "이것이 가능합니까?"와 "그렇지 않다면" 옵션이 동일한 것을 요구하는 것 같습니다.

관련 정보