아직 초보라 오류가 있을 수 있습니다! 오류 수정은 언제나 환영입니다.
함수 프롤로그의 예 (32bit)
1 : push ebp
2 : mov ebp, esp
3 : sub esp, X
1행 : ebp레지스터의 값을 스택에 저장한다.
2행 : ebp레지스터의 값을 esp의 값으로 설정
3행 : 지역변수용 스택 공간 할당
이때 ebp는 지역 변수나 인자에 접근할 때 사용한다.
함수 에필로그의 예 (32bit)
mov esp, ebp
pop ebp
ret 0
는 아마 밑의 작동방식으로 이해하면 될 것 같다. 예전에 대체 이게 뭐 하는 거지? 했는데 직접 스택을 그려보면서
이해하니 이해가 쉽다.
'리버싱 > 모두를 위한 리버싱 지침서 요약' 카테고리의 다른 글
1.7 스택 (0) | 2022.05.29 |
---|---|
1장 1.4 리턴값 x86 (0) | 2022.05.15 |