IT Security

PE파일 포맷

로픽 2018. 4. 28. 13:58
300x250

PE파일 포맷


PE(Portable Excutable)포맷

- 윈도우에서 사용되는 실행 가능한 파일 형식

- exe, dll, obj, sys등의 확장자를 가진 파일들이 여기에 해당된다.


PE 구조

- 헤더, 섹션으로 구성

- 헤더 : 파일을 실행할 때 맨 처음 시작해야 할 코드의 시작 부분에 대한 정보를 포함한다

- 섹션 : 어셈블리 코드, 소스 코드내에서 변수들, 이미지와 문서 파일등의 리소스를 담고있다.


*** 즉, 윈도우에서 실행 가능한 샐행 파일이 가지는 구조


*** PE 구조를 분석해주는 툴

PEView, PEiD, EXEINFOPE, StudPE, peframe.py 등 많은 종류의 PE 분석 툴들이 있다.



peframe.py

- 파이썬으로 작성되었고 소스 코드가 공개되어 있는 오픈소스 도구


Dos Header 구조체

- PE 구조의 앞부부인 헤더 중에서도 가장 앞부분에 위치해 PE 파일의 시작 부분

- 구조체 필드값에서 중요한 부분 e_magic 필드와 e_lfanew 필드값

- e_magic : IMAGE_DOS_HEADER 구조체 내에서도 첫번째에 위치해 있다.

- e_lfanew : LONG형 변수로 4바이트의 크기를 갖는다(실행파일의 내용이 시작하는 부분인 IMAGE_NT_HEADER 구조체의 시작 오프셋 값을 가짐)


DOS Stub 프로그램 

- 구조체가 아닌 하나의 작은 프로그램

- 32비트 윈도우 플랫폼에서 실행되도록 만들어진 pe파일이 16qlxm DOS 환경에서 실행되려는 것을 방지하는 프로그램


IMAGE_NT_HEADER 구조체

- 4바이트의 signature, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER32로 구성되어 있다.


반응형