리버싱/이론 정리

PE FILE FORMAT

coveter 2020. 7. 26. 17:22
SMALL

PE FILE FORMAT

PE FILE FORMAT이란 윈도우에서 사용되는 실행 파일 형식

 

실제로는 더 많지만 몇개만 표시함

 

- Dos header

      - WORD e_magic : Dos signature(4D5A = "MZ" )

      - LONG e_lfanew :NT header의 옵셋 표시

- Dos stub : window가 PE로 인식하면 무시

- NT header

      - DWORD signature : PE (50450000)

      - File header

            - WORD Machine : CPU 고유값

            - DWORD NumberOfSections : 섹션 개수

            - WORD TimeDateStamp : 파일 빌드 시간

            - WORD SizeOfOptionalHeader : optional header의 구조체 크기

            - WORD Characteristics : 파일의 속성 (exe, dll.. 인지)

      - optional header

            - WORD Magic : PE format 종류 표시 (32bit : 10B, 64bit : 20B)

            - DWORD AddressOfEntryPoint : EP의 RVA

            - DWORD Imagebase : 가상메모리 기준이 되는 주소(시작주소)

            - DWORD SizeOfImage : 메모리 로딩시 PE IMAGE가 차지하는 크기

            - DWORD SizeOfHeader : PE 헤더의 전체크기

            - DWORD NumberOfRvaAndSizes : DataDirectory의 배열개수

            - DataDirectory[] : Image_DATA_DIRECTORY 구조체의 배열

                                          (export directory, import directory...)  

- Section header... (섹션별로 있음)

      - DWORD VirtualSize : 메모리에서 섹션이 차지하는 크기

      - DWORD VirtualAddress : 메모리에서 섹션의 시작 주소(RVA)

      - DWORD SizeOfRawData : 파일에서 섹션이 차지하는 크기 (디스크상)

      - DWORD PointerToRawData : 파일에서 섹션의 시작 위치 (디스크상)

      - DWORD Characteristics : 섹션의 속성

- Section Bodies(.text) : 실행코드                      // 실행,읽기 권한

- Section Bodies(.data) : 전역/정적 데이터         // 비실행, 읽기, 쓰기 권한

- Section Bodies (.rsrc) : 리소스(아이콘,문자열) // 비실행, 읽기 권한

- ...

 

LIST