함수 프롤로그/에필로그
기본적으로 프로그램이 실행될 때 수많은 함수들이 호출이 되고 다시 리턴된다. 보통 함수 호출은 스택을 통해 이루어지는데, 과정을 대략적으로 설명하면 다음과 같다. 1. 함수가 사용할 파라미터를 스택에 넣고, 함수 시작 주소로 점프한다. 2. 함수 내에서 사용할 스택 프레임을 구성한다. 3. 함수 내부 내용 수행 4. 함수를 호출한 주소로 돌아가기 위해 스택을 복원시킨다. 이때 2번 내용을 프롤로그, 4번 내용을 에필로그라고 한다. 먼저 프롤로그를 살펴보자. ① RET ② SFP 위 그림에서, 메모리의 제일 아래를 나타내는 주소가 EBP이면서 ESP인데, 복귀 주소(RET)를 스택 맨 아래에 넣어두고, SFP는 RET 위에, 이 바로 아래에 EBP로 설정해두고, ESP값에 EBP 값을 넣는 과정이 프롤로그..