ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PE 구조 (8) - 계산기의 PE 구조 / IMAGE OPTIONAL HEADER - IMAGE DATA DIRECTORY 분석
    Knowledge/Reversing 2019. 9. 29. 17:21

     

    오늘의 글은 IMAGE DATA DIRECTORY 분석 글이다.

     

    복습차원에서 IMAGE DATA DIRECTORY의 배열의 정의된 의미를 확인해보자.

     

     

    #define IMAGE_DIRECTORY_ENTRY_EXPORT          0   // Export Directory
    #define IMAGE_DIRECTORY_ENTRY_IMPORT          1   // Import Directory
    #define IMAGE_DIRECTORY_ENTRY_RESOURCE        2   // Resource Directory
    #define IMAGE_DIRECTORY_ENTRY_EXCEPTION       3   // Exception Directory
    #define IMAGE_DIRECTORY_ENTRY_SECURITY        4   // Security Directory
    #define IMAGE_DIRECTORY_ENTRY_BASERELOC       5   // Base Relocation Table
    #define IMAGE_DIRECTORY_ENTRY_DEBUG           6   // Debug Directory
    //      IMAGE_DIRECTORY_ENTRY_COPYRIGHT       7   // (X86 usage)
    #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE    7   // Architecture Specific Data
    #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR       8   // RVA of GP
    #define IMAGE_DIRECTORY_ENTRY_TLS             9   // TLS Directory
    #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG    10   // Load Configuration Directory
    #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT   11   // Bound Import Directory in headers
    #define IMAGE_DIRECTORY_ENTRY_IAT            12   // Import Address Table
    #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT   13   // Delay Load Import Descriptors
    #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14   // COM Runtime descriptor

    #define IMAGE_DIRECTORY_ENTRY_RESERVED 15 // Reserved Directory

     

     

    그리고 전에 계산식 글에서 본 내용이지만 1번 인덱스 값에는 IAT의 주소가 존재하는데 그 값을 확인해보았음으로 여기서는 넘어가도록 하자.

    그리고 이 IAT는 굉장히 중요한 내용으로 다음 글에서 자세히 다루도록 하겠다.

    이 글에서는 EXPORT(0), IMPORT(1), RESOURCE(2), TLS(9)만 집중해서 보면 된다.

     

    image data directory

     

     

    [0] 값인 export(EAT)는 존재하지 않았다.

    EAT는 외부에서 이 녀석을 참고 할 수 있도록 하는 핵심으로 보통 라이브러리의 dll&sys파일들에 이 값이 존재합니다.

     

     

    [1]값인 IAT는 12B80임으로 11F80으로 가서 찾았다.

     

     

     

    [2] 값인 Resource를 확인해보면 00 60 01 / 38 87로

    16000이란 RVA와 8738의 size를 갖고 있는 것을 확인할 수 있다.

    RAW를 확인해서 찾아가보면 13600에 있다.

     

     

     

    굉..굉장히 길다....

     

    이제 TLS인 [9]를 보자.

     

    공교롭게도 값이 없다. 고로 넘어간다.

     

    다만 [12]인덱스도 IAT로 정의되어 있다.

    이 녀석은 어떤 녀석인지 잘 모르겠다..

    혹시 아시는분이 계신다면 댓글로 알려주시면 정말 감사드릴것같아요 ㅠㅠ

     

    이렇게 image data directory배열 분석도 끝이 났다.

     

     

     

    댓글

Designed by Tistory.