상세 컨텐츠

본문 제목

Reverse Core 7장

Computer Science/Reverse Core

by RACC8N 2020. 1. 15. 17:47

본문

Stack Frame

ESP(스택 포인터)가 아닌 EBP(베이스 포인터)레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법.

ESP레지스터의 값은 수시로 변경되기 때문에 스택에 저장된 변수, 파라미터에 접근하고자 할 때 ESP값을 기준으로하면 어려움.

 

어떤 기준 시점(함수 시작)의 ESP 값을 EBP에 저장하고 이를 함수 내에서 유지해주면, ESP값이 아무리 변해도 EBP를 기준(base)으로 안전하게 해당 함수의 변수, 파라미터, 복귀 주소에 접근할 수 있다.

 

프롤로그 : push ebp ~

 

에필로그 : mov esp, ebp ~

 

※ 스택에 복귀 주소가 저장된다는 점이 보안 취약점으로 작용 할 수 있다. (Buffer overflow)

 

 

'Computer Science > Reverse Core' 카테고리의 다른 글

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

관련글 더보기

댓글 영역