PE (Portable Executable)
PE (Portable Executable) 정의 : Windows OS에서 실행 가능한 Executable File Format이다. x86 아키텍처의 경우 PE32, x86-64 아키텍처의 경우 PE32+이라고 칭한다.
PE (Portable Executable) 종류
- Executable File : EXE, SCR
- Library File : DLL, OCX, CPL, DRV
- Driver File : SYS, VXD
- Object File : OBJ
PE (Portable Executable) 관련 Address 용어
- File Pointer (or Offset) : PE 파일이 Disk에 존재할 때, 파일 내부의 상대적인 주소를 의미한다.
- Image Base : PE 파일이 메모리에 존재할 때, 시작 주소를 의미한다. ASLR이 적용된 경우, 실행마다 주소가 Image Base 주소가 변경된다는 특징이 있다.
Image Base = VA -RVA
- VA (Virtual Address) : PE 파일이 메모리에 존재할 때, 메모리 내부의 절대적인 주소를 의미한다.
VA = Image Base + RVA
- RVA (Relative Virtual Address) : PE 파일이 메모리에 존재할 때, 시작 주소(Image Base)를 기준으로한 상대적인 주소를 의미한다. 실행마다 변하지 않기 때문에, PE 파일의 내부에서 특정 코드 혹은 데이터를 참조할 때 사용한다.
RVA = VA - Image Base
PE (Portable Executable) Structure
PE 파일은 아래와 같은 구조로 구성되어 있으며, 각 섹션은 고유의 역할을 수행한다.
PE Header
[Reverse Engineering] PE (Portable Executable) Body Structure Analysis
[Reverse Engineering] PE (Portable Executable) Body Structure Analysis
PE (Portable Executable)PE (Portable Executable) 정의 : Windows OS에서 실행 가능한 Executable File Format이다. x86 아키텍처의 경우 PE32, x86-64 아키텍처의 경우 PE32+이라고 칭한다.본 문단은, PE Header 를 제외한 PE Body
digitalforensicmaster.tistory.com
PE Body
[Reverse Engineering] PE (Portable Executable) Header Structure Analysis
[Reverse Engineering] PE (Portable Executable) Header Structure Analysis
PE (Portable Executable)PE (Portable Executable) 정의 : Windows OS에서 실행 가능한 Executable File Format이다. x86 아키텍처의 경우 PE32, x86-64 아키텍처의 경우 PE32+이라고 칭한다.본 문단은, PE Body 를 제외한 PE Header
digitalforensicmaster.tistory.com