본문 바로가기
reversing

스택

by 코끼리_땃쥐 2021. 11. 4.
반응형

프로세스에서 스택 메모리의 역할은 아래와 같습니다.

 

1. 함수내의 로컬 변수 임시 저장

2. 함수 호출 시 파라미터 전달

3. 복귀 주소(return address)저장

 

위와 같은 역할을 수행하기에는 스택의 FIFO(First In Last Out) 구조가 아주 유용합니다.

 

스택의 특징

 프로세서에서 스택 포인터(ESP)의 초기 값은 Stack Bottom쪽에 가깝습니다.

PUSH 명령에 의해서 Stack에 값이 추가되면 스택 포인터는 Stack포인터는 Stack Top향해(위쪽으로) 움직이고, POP명령에 의해 스택에서 값이 제거되면 스택 포인터는 Stack Bottom을 향해(아래쪽으로) 움직입니다. 즉 높은  주소에서 낮은 주소 방향으로 스택이 자라납니다. 아래에서 윗 방향으로 스택이 자랍니다. 이러한 스택의 특성 때문에 보통 "스택은 거꾸로 자란다." 라는 표현을 쓰기도 합니다.

반응형

'reversing' 카테고리의 다른 글

Hook ? (훅 이란 ?)  (0) 2022.02.24
함수호출 규약(Calling Convention)  (0) 2021.11.09
스택 프레임  (0) 2021.11.08
CPU 레지스터  (0) 2021.11.04
기초 리버싱  (0) 2021.11.02

댓글