해커스쿨lob하고 있는데 아래 사이트 링크...
https://d4m0n.tistory.com/76
1. main 함수에서 p라는 함수를 실행 (push eip를 하여서 다음 실행주소를 -4공간에 저장 (이것이 ret 이다))
----------
ret
---------- <-- esp, ebp
2. push ebp를 하여서 -4 공간에 처음의 ebp주소를 넣어줌 (이것이 sfp 이다)
----------
ret
---------- <-- ebp
sfp[처음 ebp의 주소]
---------- <-- esp
sfp와 ebp가 어떻게 상호작용하는지 정확히 이해가 안 간다...
"처음 ebp의 주소 == sfp"라고 수학공식 암기하듯이 외우면 되기는 되는데
코드보고 레지스터나 스택의 구조가 어떻게 바뀌면서
"처음 ebp의 주소 == sfp"라는 공식이 성립이 되는지 근본적인 이유를 이해하고 싶음...
lob 저것도 거의 다 했는데 중간에 몇몇 개념을 놓치고 간게 있어서 복습하고 있음..