본문 바로가기

PE 기초 개념 본문

개념 정리

PE 기초 개념

Seongjun_You 2022. 1. 15. 21:24

PE 포맷

WINDOW에서 사용하는 실행 파일을 일컫는 말이다.

MS에서 다른 OS와 이식성을 향상하기 위해 만든 파일 포맷이다.

 

 

PE 파일 종류

4개의 계열 가지고 있다.

실행 파일  EXE, SCR
라이브러리 파일 DLL, OCX, CPL, DRV
오브젝트 파일 OBJ
드라이버 파일 SYS, VXD

 

 

PE 파일 구조

 

 

 

 

 

IMAGE_DOS_HEADER

e_magic : Signature

어떤 구조인지 알려준다.

각 파일의 형식에 따라 다른 파일 시그니처를  가진다.

 

e_lfanew : Offset to New EXE Header

실제 파일이 어디서 시작하는지 알 수 있다.

저 지점으로 가보면...

 

PE가 있는것을 알 수 있다.

 

MS-DOS Stub Program

Signature:

e_lfanew에서 알려주었던 주소로 시작된다.

처음에 바로 시그니처가 나온다.

 

 

 

IMAGE_FILE_HEADER

 

Machine : CPU 정보

Number of Sections : 섹션 개수

Time Date Stamp :  시간

Size of Optional Header : header의 크기

Characteristics : 파일 형식 정보

 

 

Magic : 실행하는 PE 파일의 구조체 32bit인지 64bit인지 확인

Size of Code : 코드 영역의 크기

Address of Entry Point : 프로그램 실제 시작 주소!!

Base of code : 코드 영역이 시작되는 상대 주소

Image Base : PE 파일이 메모리에 로드되는 시작 주소

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

File Alignment : 파일에서 섹션의 최소 단위

Size of Image : PE파일이 메몰리에 로딩될 때 전체 크기

Size of header : 모든 헤더 크기

Sub System :  1.system driver, 2.GUI, 3.CUI

 

image base와 address of entry point의 합이 프로그램 코드 시작 주소이다.

 

Number of RvaAndSize : Data Directory의 구조체 멤버 변수

 

 

SECTION_HEADER

Section Heade종류

.text : 실행코드

.data :초기화된 전연 변수, static 변수

.rdata : Const 변수, 문자열 상수

.bss :  전역 변수, static변수, 문자열, 기타 상수

.edata : EAT와 관련된 정보

.Idata : IAT와 관련된 정보

.rsrc : 리소스 정보

 

 

Name : 섹션 이름

Virtual Size : 메모리 섹션의 크기

Virtual Address : 메모리 섹션의 시작 주소, RVA

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

Pointer to RAW Data : 파일에서의 섹션 시작 위치

Characteristics : 섹션의 정보 표시

'개념 정리' 카테고리의 다른 글

overwrite _rtld_global  (0) 2022.02.07
vtable check bypass  (0) 2022.01.18
shellcode 모음  (0) 2022.01.07
ptmalloc2  (0) 2022.01.03
셸코드 작성  (0) 2021.12.30
Comments