완료됨
main에서 코드 주소
system("/bin/sh") 주소가 0x400a11인 이유가 뭘까요?
system 함수를 call 하는 부분인 그 다음 주소 0x400a16이 아닌 이유가 뭘까요?
#pwnable
작성자 정보
답변
2
https://learn.dreamhack.io/54#6
위의 강의를 보면 sysv 호출규약의 경우 레지스터와 스택을 통해 인자를 전달합니다.
"rdi, rsi, rdx, rcx, r8, r9, 스택" 이렇게요
system("/bin/sh") 에서 system함수의 첫번째 인자는 "/bin/sh"이기 때문에
rdi의 32비트 버전인 edi로 /bin/sh를 넘기는 겁니다.