[Dreamhack] Quiz: Calling Convention

Sisyphus·2022년 7월 18일
0

Dreamhack - System Hacking

목록 보기
12/49

함수를 호출할 때 넘겨줄 인자를 push 할 때는 뒤에서부터 push 합니다.

(a) push 0x3
(b) push 0x2
(c) push 0x1


1, 2, 3 총 3개의 정수형 인자를 정리하는 것이기 때문에, 4 * 3 = 12 = 0xc

(d) add esp, 0xc



SYSV에서는 rdi → rsi → rdx → rcx → r8 → r9 → stack 순서로 인자를 넘겨줍니다.

(a) mov edx, 0x3
(b) mov esi, 0x2
(c) mov edi, 0x1



Quiz: Calling Convention

2개의 댓글

comment-user-thumbnail
2023년 6월 26일

sysn 호출규약에서는 rdi → rsi → rdx → rcx → r8 → r9 → stack 순서로 인자를 넘겨준다고하셨는데
데이터를 가져오는 순서가 rdi → rsi → rdx 이라서
정답은 edx -> esi -> edi 순으로 위에 push 하신 개념과 비슷하게 순서되는 것인가요?
아니면 레지스터에 값을 넣는 순서는 상관이 없는건가요?

1개의 답글