1.콜 스택
프로그램에서 사용하는 서브루틴에 대한 정보를 저장하기 위한 자료구조.
사용하는 주 목적은 서브루틴 간 호출 순서를 추적할 수 있는 정보를 저장하는 것.
예) 서브루틴 호출 순서가 A -> B -> C일때 서브루틴 C가 종료됐을때
B가 어디로 되돌아가서 다시 동작을 계속해야 할지에 대한 정보를 콜 스택에 저장한다.
서브루틴 A가 명령어 6까지 있다고 가정할때 3까지 실행 후 서브루틴 B를 호출
-> 서브루틴 B가 저장된 위치로 가서 서브루틴 B의 명령어인 명령어 1 ~ 명령어 3까지 순서대로 수행하고
다시 서브루틴 A로 돌아옴 -> 복귀 주소는 서브루틴 B의 호출 명령어 다음인 명령어 4임 (자세한건 133쪽 참고)
복귀주소는 스택이라는 자료구조에 넣어두고 B의 동작이 완료후 사용해서 복귀2.
2. 콜 스택에 있는 것들
서브루틴을 호출할때 필요한 인수, 사용하는 지역 변수
'리버싱 > 리버싱 입문' 카테고리의 다른 글
리버싱 입문_6장 지뢰찾기 게임 (0) | 2021.04.13 |
---|---|
abex crackme 3 풀이 + 함수 호출 규약 (0) | 2021.03.16 |
abexcrackme1 풀이 (0) | 2021.03.14 |
리버싱 입문 1장 6. 어셈블러 기초 지식 (0) | 2021.03.10 |
리버싱 입문 1장 4. PE 파일 (0) | 2021.03.07 |