스택프레임
-
[리버싱 핵심원리 study] 7장 Stack FrameReverse Engineering 2020. 12. 1. 02:02
1. Stack Frame 개념 설명 Stack Frame이란 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 이용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소 등에 접근하는 기법을 말한다. ESP 값은 프로그램 안에서 수시로 변하기 때문에 EBP를 함수 시작 전에 저장하고 유지하면 안전하게 변수, 파라미터, 복귀 주소 등에 접근할 수 있다. Stack Frame의 어셈블리 코드 부분은 다음과 같다. PUSH EBP MOV EBP, ESP ... ... ... MOV ESP, EBP POP EBP RETN 함수가 호출되고 나면 PUSH EBP를 통해 기존 EBP값(함수 호출 이전의 EBP 주소)을 저장한다. 이후에 MOV EBP, ESP를 통해 ESP 값을 EBP에 저장하게 되면, 함수..