명령 (예 :/bin/ls)에 의해 실행 된 모든 시스템 호출을 나열하는 프로그램을 작성했습니다. 이제는 모든 시스템 호출 인수, 환경 변수, 전달할 수있는 명령 줄 인수를 찾으려고합니다.
ptrace를 사용한 시스템 호출 추적
예 : 파일을 여는 경우. 시스템 호출 sys_access가 파일을 올바르게 엽니 다? 그러나 이러한 가치를 얻는 방법은 무엇입니까?
open, read, write, close와 같은 시스템 호출에서이 작업을 수행하려고합니다.
내 연구에 따르면 레지스터에 있어야합니다 (ebx - edx) 그렇다면이 레지스터 값은 무엇을 의미합니까? 이 부분은 link입니다.
그러나 나는 거기에서 많은 것을 정말로 얻을 수 없었다. 또한 이것에 대한 더 이상의 참조는 많은 도움이 될 것입니다.
이 도움이됩니까? http://lxr.free-electrons.com/source/include/linux/syscalls.h – dbrank0
@ dbrank0 : 정말 고마워요. 참으로 도움이됩니다. 하지만 한 가지 더 질문이 있습니다. EBX : 004c48de ECX : 내 이전 프로그램의 출력이 'code'SYSCALL (33)과 같다 00000000 EDX : 004c8ff4/액세스 RETURN 33 : fffffffe 이의 값을 16 진수에 . 그럼 어떻게 이해할 수 있니? 나는 멍청한 프로그래머입니다. 죄송합니다 내 무지에 대한 –
파일 이름은 0x4c48de에 저장됩니다 모드는 0 (모드 플래그를 정의 참조) edx는 관련이 없으며 정의되지 않은 무언가를 포함하고 반환 값 -2 (읽기 전용 파일 시스템에 대해 불평)입니다. – dbrank0