둘둘리둘둘리둘둘리둘둘리둘둘리둘

PE 파일 구조 - 1 본문

Windows

PE 파일 구조 - 1

dool2ly 2015. 10. 13. 14:01

(VA)Virtual Address

- 절대주소

- 00000000~FFFFFFFF (4GB)


(RVA)Relative Virtual Address

- 상대주소(offset ?)


VA = RVA + Image Base


RVA 사용 이유

- Relocation 염두




@PE Header 구조

IMAGE_DOS_HEADER (DOS EXE Header 확장판)

- DOS파일 하위 호환을 위해

- e_magic(Signature) : 4D 5A(MZ)

- e_lfanew(Offset to New EXE Header) : NT Header의 옵셋


MS-DOS Stub Program

- 옵션임(없어도됨)

- DOS환경에서 실행시 "This program cannot be run in DOS mode"출력하고 종료하는 어셈블리어 가짐(16bit 어셈블리어)


IMAGE_NT_HEADERS

- Signature : 50 45 (PE)

- IMAGE_FILE_HEADER

> Machine : CPU 고유 값

> Number of Sections : 섹션 개

> Size of Optional Header : IMAGE_OPTIONAL_HEADER 크기

> Characteristics : 파일 속성(bit OR결과)

- IMAGE_OPTIONAL_HEADER

> Magic : 32bit는 10B, 64bit는 20B

> Address of Entry Point : Entry Point의 옵셋

> Image Base : Image Base

> Section Alignment : 메모리에서 Section의 최소단위

> File Alignment : 파일에서 Section의 최소단위

> Size of Image : 파일이 메모리에 로드됐을때 PE Image의 크기

   (x64에서도 DWORD크기 -> Image의 최대크기가 4GB로 제한)

> Size of Headers : PE Header의 전체 크기 ( File Alignment 배수)

> Subsystem : 1-> Driver file,  2-> GUI file,  3-> CUI

> Number of Data Directories : Data Directory배열의 개


IMAGE_SECTION_HEADER

- Name : 참고용.  아무거나 써도됨

- Virtual Size : 메모리에서의 섹션 크기

- RVA : 메모리에서의 해당 섹션 시작주소(RVA)

- Size of Raw Data : 파일에서의 섹션 크기

- Pointer to Raw Data : 파일에서의 섹션 시작주소

- Characteristics : 속성(OR연산된)


'Windows' 카테고리의 다른 글

PE header관련 구조체  (0) 2015.10.17
PE 파일 구조 - 2  (0) 2015.10.13
FAT32의 저장방식  (0) 2014.06.25
FAT32 구조  (0) 2014.06.24
Partition Table Entry와 FAT16 BR구조  (0) 2014.06.22
Comments