-
FTZ. 함수 프롤로그 / 함수 에필로그Pwnable/FTZ 2020. 2. 11. 05:37
함수 프롤로그
: 함수 내에서 사용할 스택 프레임을 설정한다.
esp // 스택의 마지막 부분을 저장하면 push, pop 에 따라 4씩 값이 변한다. eip // 다음에 실행하여야 할 명령어가 존재하는 메모리 주소가 저장됨. ebp // 스택의 시작지점 주소가 저장된다. (스택의 처음 부분) push // 스택 값을 넣는다. esp의 값이 4만큼 줄어들고 이 위치에 새로운 값이 채워진다. push ebp // 돌아갈 곳의 주소를 스택에 저장하는 것이다.(이때 esp가 4만큼 움직인다.) mov // 소스에서 목적지로 데이터를 복사한다. pop // esp 레지스터가 가르키고 있는 위치의 스택 공간에서 4byte 만큼을 목적지 피연산자에 복사하고 esp 레지스터의 값에 4를 더한다.
함수 에필로그
: 함수 내에서의 수행을 마치고 처음 호출한 지점으로 돌아가기 위해 스택을 복원한다.
leave // mov ebp,esp + pop ebp ret // pop eip + jmp eip
'Pwnable > FTZ' 카테고리의 다른 글
FTZ. level 11 정리 (3) 2020.02.25 FTZ . level9 정리 (0) 2020.02.11