이번에는 IMAGE_DATA_DIRECTORY 구조체를 알아볼 차례이다.
WinNT.h를 보면 IMAGE_OPTIONAL_HEADER안에 있지만, 사실은 NT Additional Fields 하부구조체이다.
구조는 아래와 같다.
WinNT.h에 명시되어 있는 것을 보면 IMAGE_DATA_DIRECTORY의 엔트리 개수는 16개로 정의되어 있다.
엔트리는 다음과 같이 정의되어 있고, 마지막은 0으로 예약되어 있기 때문에 16개가 되는 것이다.
WinNT.h를 보면 IMAGE_OPTIONAL_HEADER안에 있지만, 사실은 NT Additional Fields 하부구조체이다.
구조는 아래와 같다.
[그림 1 - 구조체 형태]
WinNT.h에 명시되어 있는 것을 보면 IMAGE_DATA_DIRECTORY의 엔트리 개수는 16개로 정의되어 있다.
[그림 2 - 엔트리 정의]
엔트리는 다음과 같이 정의되어 있고, 마지막은 0으로 예약되어 있기 때문에 16개가 되는 것이다.
[그림 3 - 엔트리 목록]
아래는 notepad.exe의 IMAGE_DATA_DIRECTORY 구조체의 각 엔트리 부분을 표시한 것이다.
표시한 각 부분의 앞쪽 4바이트는 RVA(DWORD VirtualAddress)이며, 뒤쪽 4바이트는 크기(DWORD Size)를
의미한다.
각 부분에 대한 설명은 주소와 크기로만 나누어지기 때문에 생략하도록 하겠다.
표시한 각 부분의 앞쪽 4바이트는 RVA(DWORD VirtualAddress)이며, 뒤쪽 4바이트는 크기(DWORD Size)를
의미한다.
[그림 4 - notepad.exe 엔트리 표시]