orang

 

함수, 상수등이 들어가는 코드영역 전역변수가 들어가는 DATA와 BSS영역 동적할당되는 HEAP과 마지막으로 지역변수가 들어가는 STACK

 

kernel 영역은 사용자의 접근을 허가 하지 않는다.

 

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

지역(local) 변수, 매개변수(parameter), 리턴 값 등 잠시 사용되었다가 사라지며 함수 호출시 생성되고 함수가 끝나면 반환 된다.

 

2. heap 영역은 동적으로 메모리를 할당 할 때 쓰는 메모리 영역으로 메모리 주소 값에 의해 참조 및 사용되는 영역이다.

 

3. data, bss 영역은 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다.

프로그램이 실행 될 때 생성되고 프로그램이 종료 되면 시스템에 반환 된다.

변수가 초기화 되면 데이터 영역, 초기화 되지 않으면 bss영역이다.

 

4. code 영역은 코드자체를 구성하는 메모리 영역으로 기계어 명령어들과 어셈블리 코드가 자리한다.

 

스택은 위에서 아래로 힙은 아래에서 위로 자라며 사이에 라이브러리 영역이 존재한다.

 

 

 

 

 

'Basic Concepts > System' 카테고리의 다른 글

GOT Overwrite  (0) 2020.04.24
PLT & GOT 정리  (0) 2020.04.24
RTL(Return to libc) & chaining  (0) 2020.04.23
Fake EBP  (0) 2020.04.22
SFPO(Stack Frame Pointer OverFlow)  (0) 2020.04.22

+ Recent posts