Stack Frame
ESP(스택 포인터)가 아닌 EBP(베이스 포인터)레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법.
ESP레지스터의 값은 수시로 변경되기 때문에 스택에 저장된 변수, 파라미터에 접근하고자 할 때 ESP값을 기준으로하면 어려움.
어떤 기준 시점(함수 시작)의 ESP 값을 EBP에 저장하고 이를 함수 내에서 유지해주면, ESP값이 아무리 변해도 EBP를 기준(base)으로 안전하게 해당 함수의 변수, 파라미터, 복귀 주소에 접근할 수 있다.
프롤로그 : push ebp ~
에필로그 : mov esp, ebp ~
※ 스택에 복귀 주소가 저장된다는 점이 보안 취약점으로 작용 할 수 있다. (Buffer overflow)
Reverse Core 13장 (★★★★★) (0) | 2020.01.22 |
---|---|
Reverse Core 10장 (0) | 2020.01.15 |
Reverse Core 5장 (0) | 2020.01.14 |
Reverse Core 4장 (0) | 2020.01.14 |
Reverse Core 3장 (0) | 2020.01.14 |
댓글 영역