Security Study/System

memory 영역

𝓛𝓾𝓬𝓮𝓽𝓮_𝓢𝓽𝓮𝓵𝓵𝓪 2015. 10. 7.
728x90
반응형

memory 


code 영역

- 코드를 구성하는 memory 영역으로 hex file or bin fire memory

- program 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역이다.


data 영역

- 전역변수, 정적변수, 배열, 구조체 등이 저장되어 있다.

 * 초기화 된 데이터는 data 영역에 저장되고 초기화 되지 않은 데이터는 bss(block stated symbol)에 저장된다.


- 프로그램이 실행 될 때 생성되어 프로그램 종료 시 까지 존재한다. 

- 함수 내부에 선언된 static 변수는 프로그램이 실행 될 때 공간만 할당되고, 함수가 실행 될 때 초기화 된다.


heap 영역

- 필요에 따라 동적으로 메모리를 할당 하고자 할 때 위치하는 메모리 영역으로 동적 데이터 영역이라고 부르며, 메모리 주소 값에 의해서 참조되어 사용된다.

- 함수로는 malloc()등이 사용된다.


stack 영역

- 프로그램이 자동으로 사용하는 임시 메모리 영역이다.

- 지역변수, 매개 변수, 리턴 값 등 잠시 사용되었다가 사라지는 데이터를 저장한다.

- 함수 호출 시 생성되고, 함수가 끝나면 사라진다.

- 스택 사이즈는 각 프로세스마다 할당 되지만 프로세스가 메모리에 로드 될 때 스택 사이즈가 고정되어 있다. 이에 런타임 시에 스택 사이즈는 고정이다.

- 명령 실행시 자동 증가/감소 하기 때문에 보통 메모리의 마지막 번지를 지정한다.


728x90
반응형

'Security Study > System' 카테고리의 다른 글

system 24byte shellcode  (0) 2015.10.15
Use After Free  (0) 2015.10.12
C언어의 메모리 구조  (0) 2015.09.21
race condition(경쟁 조건)attack  (0) 2015.09.17
system /bin/sh 주소 찾기  (0) 2015.09.15

댓글0

💲 추천 글