150 likes | 574 Views
파일 구조의 이해. PE Format. PE Format 이란 무엇인가 ?. 1. PE 란 ?. - Portable Excutable Format - Windows 운영체제에서 쓰이는 실행파일 포맷 (EXE, DLL, OCX, SYS, SCR…) - 여러 CPU 플랫폼에서 동일한 파일 포맷으로 실행 가능하기 위함 - PE 구조를 가지고 있어도 확장자가 다르다면 실행되지 않는다. 3. Signature. 1. PE 란 ?.
E N D
파일 구조의 이해 PE Format
PE Format이란 무엇인가? 1. PE란? - Portable Excutable Format - Windows 운영체제에서 쓰이는 실행파일 포맷(EXE, DLL, OCX, SYS, SCR…) - 여러 CPU 플랫폼에서 동일한 파일 포맷으로 실행 가능하기 위함 - PE 구조를 가지고 있어도 확장자가 다르다면 실행되지 않는다. 3
Signature 1. PE란? - File들을 구분 짓는 값으로 첫 byte부터 일정 거리까지의 HEX값(ASCII) 3
용어 및 개념 정리 1. PE란? - RVA (Relative Virtual Address) - 섹션 (Section) ㆍ상대적인 가상 주소 ㆍ메모리에 로드 시 기준이 되는 주소(뒤에 나올 Imagebase)로부터의 상대적인 주소 ㆍ 파일이 실행될 때 주소와 관련 있는 값들(Entry Point, Import Table값 등)RVA값 표현 ㆍPE 파일의 실제 내용 담고있는 블록 ㆍPE 파일은 여러 개의 블록으로 쪼개져 있음 (text, data, idata, …) 3
파일 상태와 메모리 상태의 관계도 1. PE란? 3
PE파일의 상세 구조 - 1 1. PE란? DOS Header & Stub Code PE Header Section Header Section 3
PE파일의 상세 구조 - 2 1. PE란? • DOS Header • - 이전 DOS와의 호환성을 위해 유지되어 있는 헤더 • - 항상 64bytes의 크기를 가짐 • - MZ Signature ( 4D 5A = M Z ) • - PE Header를 가리키는 오프셋 3
PE파일의 상세 구조 - 3 1. PE란? • Stub Code • - 필수 X • - Stub Code가 없어도 프로그램 실행에는 문제 없음 • - “This program cannot be run dos mode” 3
PE파일의 상세 구조 - 4 1. PE란? • PE Signature • - PE\0 \ 0 • - 실질적인 PE 구조의 시작점 3
PE파일의 상세 구조 - 5 1. PE란? • PE Header • - 동작 시스템, 섹션의 수, 타임스탬프, Optional Header의 크기, 파일의 특성들이 정의 되어 있다. 3
PE파일의 상세 구조 - 6 1. PE란? • PE Optional Header • - EntryPoint나 Import Export Tables등 PE 파일의 중요한 정보들을 담고 있다. 3
PE파일의 상세 구조 - 7 1. PE란? • Section Header • - 섹션의 수만큼 헤더를 가지고 있다 • - 실제 섹션에 대한 파일상의 위치, 메모리에 로딩 될 때의 위치, 크기, 특성들이 정의되어 있다. 3
섹션들의 기본 정보 1. PE란? 3
Import & Export 1. PE란? • IMPORT • - 다른 모듈에서 필요한 기능을 사용하기 위해 주소를 가져오는 것 • EXPORT • - 포함된 기능을 다른 프로그램에서 사용 가능하도록 내어놓는 것 3