먼저 실습 프로그램인 Stack.exe를 디버거로 열어준다
프로그램의 시작점 EP에서 브레이크가 걸리는데, 스택 포인터 esp의 값은 19FF78이다.
스택의 변화를 보기위해 401000주소의 push 100을 실행해보자
esp의 값이 19FF78에서 19FF74가 되었다.
디버거의 스택창을 보면 19FF74주소에 100이란 값이 저장되어있는걸 확인할 수 있다
그럼 이제 401005주소의 pop eax를 실행해보자
실행을 하니 eax값은 100으로 바뀌고 esp값은 19FF74에서 19FF78로 변한걸 확인할 수 있다
위 과정으로 스택의 동작을 확인한 결과는 다음과 같다
push를 하면 스택 포인터 esp값은 감소하고, pop을 하면 esp값은 증가한다
위 그림은 스택의 구조를 시각적으로 잘 보여주는 그림이다
스택은 Last In First Out(LIFO)구조를 가지고 있는데, 한 곳 으로만 들어갔다가 나올 수 있다
'Reversing' 카테고리의 다른 글
PE File Format (0) | 2024.09.23 |
---|---|
Calling Convention (0) | 2024.09.23 |
Abex' crackme #2 Analysis (0) | 2024.09.20 |
Stack Frame (0) | 2024.09.13 |
Abex' crackme #1 Analysis (0) | 2024.09.12 |