함수 프롤로그 & 에필로그
●스택 프레임
: 함수가 실행되기 위해 스택에 여러 데이터를 올리게 되는데 이때 각 함수가 사용하는 스택의 영역
●함수 프롤로그
: 함수 내에서 사용할 스택프레임 설정한다.

push ebp
mov ebp, esp


●함수 에필로그
: 함수 내에서의 수행을 마치고 처음 호출한 지점으로 돌아가기 위해 스택을 복원

leave:

mov esp,ebp
pop bp

ret:

pop eip
jmp eip

<어셈문법 intel>

l ESP : 함수가 진행하고 있을 때 stack의 제일 아래 부분,현재 진행 stack 지점, Stack Pointer
+ stack 메모리는 아래로 성장하기 때문에 제일 아래가 제일 마지막이 된다.
l EBP : 스택의 가장 윗 부분(기준점), Base Pointer
l EIP : 실행할 명령의 주소, Instruction Pointer


push?


스택 영역의 공간 할당 및 함수의 인자값 저장


1. 지역 변수의 값을 담기 위해 사용


2. 함수의 인자 값을 전달하기 위해 사용


call?


함수의 호출


1. [접근할 함수]로 이동하여 실행한다는 의미


pop?


함수의 종료


1. ESP가 가르키는 곳의 값을 저장한후 esp가 가르키는 공간 제거


ret?


call로 호출된 함수를 종료하고 call다음의 명령줄로 이동한다.

예제) 

 

 

 

 

 

 

이렇게 이해해가면 된다.

'포너블' 카테고리의 다른 글

FTZ level1 write up  (0) 2020.02.25
FTZ training 01~10  (0) 2020.02.25
Pwnable study 1주차[함수 프롤로그 & 에필로그]  (0) 2020.01.30
버퍼오버플로우 05- 해쿨핸드북  (0) 2020.01.01
버퍼오버플로우 04- 해쿨핸드북  (0) 2020.01.01

설정

트랙백

댓글