2022-01-13 · 2분
[해킹] 전용 레지스터
\- 데이터를 일시 정장하는 레지스터이다. 기억장치로부터의 읽어온 데이터와 누산기에 적재되어 있던 데이터가 지정된 연산을 수행한 후 그 결과 값을 다시 누산기에 적재한다. 누산기 내용을 넌부 지워 0으로 만들 수 있으며, 왼쪽이나 오른쪽으로 몇 자리씩 움직일 수도 있다
2021-11-07 · 1분
이 글은 작성된 지 2년이 넘었어요. 내용이 오래됐을 수 있어요.
스택 프레임(Stack Frame)이란?
What's the stack frame?
스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생기는 영역이다. 이 공간에는 함수와 관계되는 지역 변수, 매개변수가 저장되며, 함수 호출 시 할당되며 함수가 종료되면 소멸한다.
함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역변수 등이 저장됩니다. 이렇게 스택영역에 차례대로 저장되는 함수의 호출 정보를 스택프레임(Stack Frame)이라고 합니다. 이러한 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있습니다.
push rbp, mov rbp, rsp
!> ****](https://eliez3r.github.io/post/2019/10/16/study-system.Stack-Frame.html)
push rbp를 이용하여 함수의 rbp를 스택에 저장합니다. 그리고 rsp를 rbp에 복사함으로써 rsp를 rbp주소로 설정합니다. rbp는 함수의 기준점으로 가타내므로, rbp를 기준으로 RET이나 argc, argv 함수의 지역변수 등의 위치를 쉽게 알 수 있다. ## 2. 함수 에필로그(Epilog) 함수 에필로그 자신의 함수가 끝나 다시 돌아갈 때 스택을 정리하는 과정입니다. 다시 원래 상태로 만드는 것 입니다. 옆에선 mov eax, 0x0 pop rbp , ret 를 사용하고 있는데 **le — study-system.Stack-Frame.html
https://blog.naver.com/hermet/56227646
원문: tistory — 2021-11-07 발행, 이 블로그로 이전됨.
…