xmi1e.vir_log
로그인
xmi1e.vir_log
로그인
[Dreamhack - System Hacking] STAGE 2 : Linux Memory Layout
eunee22
·
2023년 7월 1일
팔로우
0
dreamhack
dreamhack_lecture
pwnable
Dreamhack/SystemHacking
목록 보기
3/12
CPU의 동작과 메모리 사이에는 밀접한 연관이 있다
메모리 오염 취약점(Memory Corruption)
공격자가 메모리를 악의적으로 조작하여 CPU가 잘못된 동작을 하도록 하는 것
리눅스 프로세스 메모리 구조
세그먼트(Segment) : 메모리를 적재되는 데이터의 용도별로 나눈 것
각 용도에 맞는 적절한 권한 부여 가능
1.
코드 세그먼트 = 텍스트 세그먼트
실행 가능한 기계어 코드가 위치하는 영역
r, x 권한 부여
프로그램이 동작하기 위해
2.
데이터 세그먼트
컴파일 시점에 값이 정해진 전역 변수 및 전역 상수 위치
기본적으로 r 권한 부여
w 권한 유무에 따라 분류
data 세그먼트 : w 권한이 있는 세그먼트
프로그램이 실행 시 가변적인 데이터들이 위치
ex) 전역 변수
ro(read only)data 세그먼트 : w 권한이 없는 세그먼트
프로그램 실행 시 값이 변하면 안되는 데이터들이 위치
ex) 전역 상수
3.
BSS 세그먼트 (Block Started By Symbol)
컴파일 시점에 값이 정해지지 않은 전역 변수가 위치
선언만 하고 초기화 하지 않은 전역 변수
프로그램 시작 시 모두 0으로 초기화
r, w 권한 부여
4.
스택 세그먼트
프로세스의 스택이 위치
임시 변수들이 실행 중 저장
함수의 인자, 지역변수
스택 프레임의 단위로 사용
함수 호출 시 생성 반환 시 해제
스택은 기존보다 낮은 주소로 확장
사용자의 입력 등 여러 요인에 영향을 받으므로
r, w 권한 부여
5.
힙 세그먼트
힙 데이터가 위치
실행 중 동적 할당 (=스택)
스택 세그먼트와 반대 방향으로 확장
r, w 권한 부여
malloc() calloc() 등 호출시 힙 세그먼트에 메모리가 위치
eunee22
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)
팔로우
이전 포스트
[Dreamhack - System Hacking] STAGE 2 : Computer Architecture QUIZ
다음 포스트
[Dreamhack - System Hacking] STAGE 2 : Linux Memory Layout QUIZ
0개의 댓글
댓글 작성