일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- c 환경설정
- C언어
- aes128
- 유니티3d
- VisualStudio2017
- cryptography
- 유니티3D 2018.2
- python
- 게임 오브젝트
- 유니티기초
- 빈 프로젝트
- Visual Studio
- crypto-js
- 상속
- AES
- 유니티 월드
- 기초
- CryptoJS
- 유니티 설치방법
- c++
- 엔진기초
- 비쥬얼 스튜디오
- 컴포넌트
- Today
- Total
Basic of Computer Skills
이전 포스팅에서 메인 함수의 스택 프레임 크기가 12라는 걸 알았다. (sub $esp, 12) 이제 스택의 구조를 파악하여, 어떻게 배치되어 있는지 확인해보자. 스택 프레임의 맨 아래(바닥) 부분을 가리키는 레지스터가 ebp라고 했다. (extended base pointer) 그리고 스택 프레임의 맨 위를(꼭대기) 가리키는 레지스터는 esp라고 했다. (extended stack pointer) 메인 함수의 스택 프레임을 파악하기 위해, 메인 함수에 브레이크 포인트(Break Point)를 걸자. 브레이크 포인트는 우리 말로 '중단점' 이라고 한다. 중단점을 걸고 프로그램을 실행시키면, 쭉 진행되다가 브레이크 포인트에 실행이 멈추게 된다. 따라서 메인 함수에 중단점을 걸게 될 경우엔, 메인 함수로 진..
저번 포스트에서 스택 프레임에 관한 개요를 살펴봤다. 정리하자면, 스택 프레임이란 스택 내부에서 함수가 갖는 자기만의 공간 이라고 말할 수 있다. 예를 들어 집에서(스택) 자기 방(스택 프레임)과 같은 개념인 것이다. 따라서 스택 프레임은 스택의 부분 집합에 속한다. C 언어는 메인 함수부터 시작하여, 그외 유저들이 만든 여러 함수들 까지 일단 호출되고나면 그 함수의 스택 프레임이 생성되고, 함수가 기능을 다해 종료될 때 그 함수의 스택 프레임이 정리되고 반납된다. 결국 이런 저런 함수들이 작동하면서 스택 프레임이 생성되었다가 반납되었다가를 반복하다가, 최종적으로 메인 함수의 스택 프레임까지 반납되면 비로소 프로그램이 종료되는 것이다. 여기서 함수란, 메인 함수를 포함하여 유저가 직접 만든 함수만을 한정..
스택 프레임(Stack Frame)이란, 간단히 말해서 "함수 자신만의 공간" 이라고 말할 수 있다. 그리고 이는 LOB를 풀기 위한 배경지식이므로, 해당 개념을 모른다면 포너블을 할 수가 없다. 어찌보면 스택 프레임이 프로그램 메모리 구조의 가장 기본이되는 지식이기 때문이다. 다음과 같은 프로그램이 있다고 가정하자. C 언어를 해봤다면, 프로그램이 시작할 때 main 함수부터 진행된다는 것쯤은 다 알 수 있을 것이다. 위의 프로그램은 main 함수가 func1을 호출하고, 또 func1은 func2를 호출하는 연쇄적인 구조를 가지고 있다. 따라서 해당 프로그램의 결과 값은 ================main has calledfunc1 has calledfunc2 has called==========..