Stack(스택)


Stack(스택)에 대해서 알아보겠습니다.


Stack은 프로그램이 작동되면서 값이 저장되고 불러와지는 메모리 공간입니다.

작동은 다음과 같이 됩니다.

1. 기존의 EIP 다음 순서 값이 보존됩니다.








2. 기존의 EBP 값이 보존됩니다.








3. EBP 값을 현재 Stack의 ESP 값으로 고정합니다.








4. 변수를 저장할 공간을 할당합니다.











5. 변수를 역순으로 저장합니다.(First In Last Out)











6. 변수를 역순으로 저장합니다.












7. 다 사용한 Stack은 메모리 정리를 합니다.















8. 보존된 EBP를 복구합니다.
















9. RET을 실행합니다.(보존된 EIP 복구)






끝.





카테고리: Reversing

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)