본문으로 바로가기

PE란?

category Study/reversing 2017. 10. 11. 21:51

PE(Portable Executable)란?

 

윈도우즈 환경의 실행 파일 포맷을 말한다.


 

다음은 HxD로 메모장을 실행한 모습이다.

 


 

위의 사진에 보여지는 부분이 PE헤더라고 하는 영역이다.

 

 

 

알아보기 힘드니 PEview 프로그램을 이용해서 PE에 대해 살펴보자

 


 영역별로 나누어져 볼 수 있음을 알 수 있다.


영역?





 

 

PE구조에 대해 알아보자

 

 

DOS header 부터 Section header까지 PE헤더,

그 밑에 있는 Section들이 PE바디라고 한다.

 

파일 내용은 .text와 .data, .rsrc 섹션에 나뉘어 저장된다

 

양쪽에 있는 주소는 위치를 나타내며 각각

파일의 경우 Offset으로 ,

메모리의 경우 VA로 절대주소를 나타낸다

 

VA란 프로세스 가상메모리의 절대주소를 말하며 물리적 주소이다.

 

RVA란 반대로 가상메모리의 상대주소를 말한다.

 

[ RVA + ImageBase = VA ]

 

 

이번엔 RVA to RAW를 통해 File Offset을 구해보자

 

RAW(File Offset) = RVA - VirtualAddress(VA가 아니라 RVA) + PointerToRawData

 

위의 식을 이용하면 구해낼 수 있다.

 

PE구조를 분석하는 프로그램을 이용하면 직접 계산

하지 않아도 알 수 있으니

 

그냥 이렇다 정도로만 알면 될것같다


'Study > reversing' 카테고리의 다른 글

IAT & EAT  (0) 2017.10.12
PE 헤더 구조체  (0) 2017.10.12
prob3.c 핸드레이  (0) 2017.09.21
prob2.c 핸드레이  (0) 2017.09.20
prob1.c 핸드레이  (0) 2017.09.19