728x90
스택 프레임이란 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용해 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법이다.
ESP레지스터의 값은 수시로 변경되기 때문에 스택에 저장된 변수나 파라미터 등을 ESP를 기준으로 하면 프로그램을 만들기 힘들 수 있다. 따라서 어떤 기준 시점의 ESP 값을 EBP에 저장하고 이를 함수 내에서 유지시켜주면, ESP가 변한다 한들 EBP를 기준으로 안전하게 접근 할 수 있다.
PUSH EBP ; EBP 사용 전에 기존 값을 스택에 저장
MOV EBP, ESP ; 현재 ESP를 EBP에 저장
....
MOV ESP, EBP ; ESP를 정리(함수 시작때의 값으로 복원)
POP EBP ; 리턴되기 전 원래 EBP 값으로 복원
RETN
728x90
반응형
'Reversing > Information' 카테고리의 다른 글
PE header 구조 (0) | 2023.12.30 |
---|---|
TEST 어셈블리 명령어 (0) | 2023.12.21 |
스택 (0) | 2023.12.16 |
OllyDbg x64 단축키 및 유용한 기능 모음 (0) | 2023.12.15 |
rip 레지스터 (2) | 2023.11.26 |