Jiyong's STUDY

[PE구조] IMAGE_DOS_HEADER 본문

보안/리버싱, 어셈블리

[PE구조] IMAGE_DOS_HEADER

Kingjiyong 2020. 8. 3. 15:52

"WinNT.h"

 

 

IMAGE_DOS_HEADER에서 e_magic 필드는 현재 파일이 PE 파일인지 체크하는 역할만 한다.

e_magic==5A4D(IMAGE_DOS_SIGNATURE)이라면 PE 파일이 맞다.

IMAGE_DOS_SIGNATURE은 PE 파일의 가장 첫 번째 값이다. 

 

PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)lpFileBase;

if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) {

     printf("It's not PE File format.\n");

}

 

위와 같이 e_magic과 IMAGE_DOS_SIGNATURE을 비교하여 같은 지 확인할 때만 사용한다.

 

0x5A4D (메모리에선 4D 5A로, 리틀엔디언)

e_lfanew는 IMAGE_NT_HEADER의 구조체 위치를 알아 내는 데 사용되는 값이다.

실질적인 PE의 오프셋이 어딘지 이 필드를 통해 지정하게 된다.

 

이외에는 시스템 프로그래밍 깊게 파는 거 아니면 볼 일이 없을 것.

'보안 > 리버싱, 어셈블리' 카테고리의 다른 글

[PE구조] IMAGE_FILE_HEADER  (0) 2020.08.03
[PE구조] IMAGE_NT_HEADER  (0) 2020.08.03
함수 스택 규약  (0) 2020.07.20
calc.exe 핸드레이  (0) 2020.07.17
[기초] 스택프레임 구조  (0) 2020.07.17