[개념 이해] PE 파일의 구성

리버싱 2017. 1. 10. 16:17

PE File Format에 대해서는 여기저기 자료가 많으니 개인적으로 공부하시기 바랍니다. 본 포스트에서는 PE 파일 중에서 각 섹션이 의미하는 바가 무엇인지 알아보고자 합니다.


 아래 [그림 1.1.]은 기본적인 PE 파일 구조입니다. PE Header, Section(.text), Section(.data), Section(.rsrc)로 구성되어 있습니다. PE 파일 구조에 대해 이미 공부하신 분이라면 아시겠지만 PE 헤더는 수많은 정보를 포함하고 있습니다. EP 주소, 섹션 갯수, 각 섹션별 주소 등 많은 것을 익히려고 고생하셨을 겁니다. 


[그림 1.1.] PE File Format


 그러나 리버싱 관점에서 보면 PE 헤더는 그렇게 비중이 크지 않습니다. PE 헤더는 소스 코드를 컴파일할 때 컴파일러에서 만드는 정보이기 때문입니다. 물론 상황에 따라 EP 주소를 확인해야 하는 경우도 있고 샘플이 .exe 파일인지 .dll 파일인지 확인할 때도 있지만 리버싱한다고 했을 때 우리가 분석하고자 하는 것은 실행코드 입니다. 그리고 실질적으로 실행코드에 대한 정보는 모두 섹션 영역에 있습니다. 아래 [그림 1.2.]는 PE 파일이 가질 수 있는 대표적인 섹션 종류입니다.


[그림 1.2.] PE 파일 섹션


 섹션은 PE파일의 실제 내용을 담고 있는 블록들입니다. 각 섹션에 대한 특징은 다음과 같습니다.



 이상으로 '[개념 이해] PE 파일의 구성'에 대한 포스팅을 마치겠습니다.



출처: http://securityfactory.tistory.com/90 [SecurityFactory]

: