-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
다른 syscall 부르는 방법에 대한 질문 #7
Comments
@minitu, 안녕하세요 :) 확인 해본 결과, x86에서는 ptrace로 system call number를 바꿀 수 없다고 합니다. 해당 case를 미리 테스트를 해보지 않아 혼동을 드려 죄송합니다. 과제에서 1.2를 삭제하도록 하겠습니다. |
@wynot12 답변 감사합니다. |
ptrace에게 잡히는 system call entry는 system call이 실행된 이후는 아니고 system call이 시작된 이후라고 표현하는 것이 더 적절한 것 같습니다. system call argument는 ptrace로 변경이 가능합니다. 실습 시간에 ptrace를 통해 system call argument를 변경해보는 case를 진행했었습니다. |
@wynot12 아 실습시간에 했었는데 깜빡했네요. 감사합니다. |
네, 다른 분들에게 도움이 될 수 있도록 질문 주셔서 감사합니다 :) 추가적인 질문이 있으시면 언제든 말씀해주시기 바랍니다. |
System Call Interposition 부분의 2번인 register에 담긴 system call number와 argument를 바꾸어 원래와 다른 system call을 부르도록 하려고 합니다.
tracer 코드에서
ptrace(PTRACE_SYSCALL, child, NULL, NULL)
을 부르면system call이 불린 이후(entry)와 끝난 다음(exit)에서 tracee가 잡히는 것 같은데
불린 이후에 잡힌다면 system call을 수정할 수 없는 것 아닌가요?
맨 처음 불리는
execve
(syscall # 59)을 잡을 때 entry 부분에서SETREGS
를 통해 레지스터 값을 수정해 보았는데execve
가 그대로 불리는 것을 확인했습니다.도움 부탁드립니다!
The text was updated successfully, but these errors were encountered: