1. 스택
프로세스에서 스택 메모리의 역할은 아래와 같다.
- 함수 내의 로컬 변수 임시 저장
- 함수 호출 시 파라미터 전달
- 복귀 주소(return address) 저장
위와 같은 역할을 수행하기에는 스택의 FILO(First In Last Out) 구조가 아주 유용하다.
1.1 스택의 특징
일반적으로 스택 메모리는 그림과 같이 표현한다.
프로세스에서 스택 포인터(ESP)의 초기값은 Stack Bottom쪽에 가깝다.
PUSH 명령어에 의해 Stack에 값이 추가되면 스택 포인터는 Stack Top을 향해(위쪽으로) 움직이고, POP 명령어에 의해 스택에서 값이 제거되면 스택 포인터는 Stack Bottom을 향해 (아래쪽으로) 움직인다.
즉 높은 주소에서 낮은 주소 방향으로 스택이 자라난다.
이러한 스택의 특성 때문에 보통 "스택은 거꾸로 자란다" 라는 표현을 쓰기도 한다.
'Security > Reversing' 카테고리의 다른 글
[Reversing] 07. 스택 프레임 (0) | 2021.12.02 |
---|---|
[Reversing] 06. abex'crackme #1 분석 (0) | 2021.12.02 |
[Reversing] 04. IA-32 Register 기본 설명 (0) | 2021.11.25 |
[Reversing] 03. 리틀 엔디언 표기법 (0) | 2021.11.25 |
[Reversing] OllyDbg 기초 사용법 (0) | 2021.11.25 |