Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Reversing

[PE 파일] 구조(1) - PE파일 정의, 구조(PEview.exe)

토오쓰 2020. 4. 9. 18:12

기초 정적 분석_PE 파일

notepad.exe(ver. Win 10)

 

 

PE 파일

- 정의: 실행가능한 파일, Win32 기본 파일 형식_윈도우 환경에서 동작이 된다.

- 종류: exe, scr, sys, dll, ocx 등

- 프로세스(메모리 상에서 실행되는 형태) = exe + dll

- 실행과정

1) PE파일 실행(더블클릭, 커맨드에서 실행)

2) 메모리에 PE 헤더 정보를 매핑

- 실제 프로세스를 위한 메모리 할당, 섹션 정보를 메모리에 복사, Import 정보 처리, 기준 재배치 처리)

3) 실제 프로그램 코드로 분기

- Hex editor 이용(PEview.exe)

 

 

PEView.exe

notepad.exe(ver. Win 10)

프로그램 실행 영역: text

실제 데이터 영역은 SECTION .text이고 그것과 관련된 헤더 정보는 IMAGE_SECTION_HEADER .text

 

 

Notepad.exe PE구조

왼쪽 file: 실제 파일

오른쪽 memory: 실제 메모리 상태에 올라가 있는 실행 상태

- 헤더 정보까지는 차이 없이 동일하다.

- SECTION .text가 실행 영역

- offset: 상대주소, 메모리에는 address

 

SECTION 부분에서의 차이

- Padding 영역이 메모리가 더 길어짐.

- 파일은 내용이 차곡차곡되어 있는 것이 좋다.

- 메모리는 주소 매핑을 편리하게 하기 위해서 기준이 되는 값을 설정하고 그 값을 기준으로 해서 새로운 섹션의 값을 넣어준다. 간단하게 매핑하기 위한 구조이다.

 

 

VA, RVA

VA(Virtual Address): 가상 메모리 주소 -address

RVA(Relative): 가상 메모리 상대 주소 -offset

- RVA: PE 파일이파일이 메모리 상의 어떤 위치에 올라갈지 알 수 없음, 프로그램이 정한 상대적 주소

- 실행하는 부분으로 기준점을 놓고 그곳으로부터 위치를 계산

VA = imageBase + RVA

-> 실제 프로그램에서 실행 상태에서는 VA 중요, 우리가 알고 있는 정보는 RVA

 

 

 

 -> 다음 설명으로

https://t-okk.tistory.com/37

 

PE 파일 구조(2) - PE 파일 헤더(DOS_HEADER, DOS Stud Code)

기초 정적 분석_PE 파일 notepad.exe(ver. Win 10) Notepad.exe [IMAGE_DOS_HEADER] 첫번째 주소(5A4D): 앞에서 4D5A로 표현되어 있는데 이것을 보고 리틀엔디안인지 빅엔디안인지 알 수 있다. Window System에서..

t-okk.tistory.com