ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PE File 구조체
    windows system 2013. 12. 22. 17:17

     

     

     

     

     

     

    IMAGE_DOS_HEADER

     

     

     

    e_magic : DOS signature (4D5A => ASCII값 "MZ")

    e_lfanew : NT header의 offset을 표시

     

    *DOS stub : 코드(어셈블리어)와 데이터의 혼합으로 이루어져 있다.

     

     

    IMAGE_NT_HEADER

     

     

      signatures는 PE (0x00004550)


    IMAGE_NT_HEADER -  IMAGE_FILE_HEADER

     

     

     

     

     Machine

     해당 실행 파일이 실행될 수 있는 시스템을 나타낸다.

     NumberOfSections

     각 색션에 대한 설명은 IMAGE_SECTION_HEADER부분에서 볼 수 있다. 위 캡쳐에서는 .textbss, .text, .rdata, .data, .idata, .rsrc, .reloc 7개의 section이 있다.

     Time Data Stamp

     linker에 의해 프로그램이 만들어진 시간 값.

     SizeofOptionalHeader

     IMAGE_OPTIONAL_HEADER구조체의 Byte수
     (32bit PE파일 : 224byte , 64bit : 240byte)
    IMAGE_OPTIONAL_HEADER32는 운영체제마다 크기가 다를 수 있기 때문에, PE로더가 해당 값을 먼저 확인하고 처리한다.

     Characteristics

     

     

     

    IMAGE_NT_HEADER -  IMAGE_OPTIONAL_HEADER

     

     

     Magic

     0x10B는 32bit일 경우, 0x20B는 64bit 인 경우.

    AddressOfEntryPoint

    프로그램에서 최초로 실행되는 코드의 시작 주소.

    ollydbg로 프로그램 실행 시  첫 eip값은 ImageBase + AddressOfEntryPoint값이다.


    ImageBase

    해당 프로세스의 가상메모리 0~FFFFFFFF범위 중에서 PE파일이 로딩되는 시작주소.

    일반적으로 EXE파일은 00400000이고, DLL파일은 10000000이다.

     첫 eip값은 ImageBase + AddressOfEntryPoint값


     

    IMAGE_DATA_DIRECTORY

     

     

    [15]  배열의 각 항목마다 정해진 값 가짐

     

     

     

     

     

     

     

     

     

     

     

     

    IMAGE_SECTION_HEADER

     

     

     

     

     

     

     

     

     RVA

     

     

     

     

     


     

    VA & RVA

     

    VA : 실제 가상메모리 상에서의 주소

    PE file은 0x00400000(Image Base)에 올라가고, SECTION .text는 0x00401000(ImageBase + Base of Code)에서 부터 시작한다.

     

     

    'windows system' 카테고리의 다른 글

    TLS, TEB, PEB, SEH  (0) 2014.01.08
    IAT(Import Address Table) , EAT(Export Address Table)  (0) 2013.12.28
    DLL injection  (0) 2013.12.24
    CreateProcess API  (0) 2013.12.23
    calling convention  (0) 2013.12.22
Designed by Tistory.