Reverse Engineering/Build Process & Portable Executable

[Reverse Engineering] PE (Portable Executable) Structure Analysis

DF_m@ster 2025. 8. 7. 14:13

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 (Portable Executable) Structure

 

 

 

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