본문 바로가기

PE 파일 구조4

PE File Format (4) 출처 : http://www.reversecore.com/ IMAGE_NT_HEADERS : IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER32는 PE header 구조체 중에서 가장 크기가 크다. (64bit PE 파일의 경우 IMAGE_OPTIONAL_HEADER64 구조체를 사용한다.) typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic.. 2013. 11. 10.
PE File Format (3) 출처 : http://www.reversecore.com NT Header 다음은 NT header 구조체 IMAGE_NT_HEADERS 이다. typedef struct _IMAGE_NT_HEADERS { DWORD Signature; // PE Signature : 50450000 ("PE"00) IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; * 출처 : Microsoft 의 Visual C++ 에서 제공하는 winnt.h (위 구조체는 32 bit 용이며, 64 bit 용은 세번째 멤버가 IMAGE_OPTIONAL_HEADER64로 되어있다.).. 2013. 11. 10.
PE File Format (2) 출처 : http://www.reversecore.com DOS Header Microsoft는 PE File Format을 만들 때 당시에 널리 사용되던 DOS 파일에 대한 하위 호환성을 고려해서 만들었다. 그 결과로 PE header 의 제일 앞부분에 기존 DOS EXE header 를 확장시킨 IMAGE_DOS_HEADER 구조체가 존재하는 것이다. typedef struct _IMAGE_DOS_HEADER { WORD e_magic; // DOS signature : 4D5A ("MZ") WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_maxalloc; WORD e_ss; WORD e_sp; WORD e_cs.. 2013. 11. 10.
PE File Format (1) 출처 : http://www.reversecore.com PE(Portable Executable) File Format PE 파일의 종류는 다음과 같다. ∙ 실행 파일 계열 : EXE, SCR ∙ 라이브러리 계열 : DLL, OCX ∙ 드라이버 계열 : SYS ∙ 오브젝트 파일 계열 : OBJ 엄밀히 따지자면 OBJ(오브젝트) 파일을 제외한 모든 파일들은 실행가능한 파일이다. DLL, SYS 파일 등은 쉘(Explorer.exe)에서 직접 실행 할 수는 없지만, 다른 형태의 방법(디버거, 서비스 등)을 이용하여 실행이 가능한 파일들이다. 간단한 설명을 위해 메모장(notepad.exe) 파일을 hex editor를 이용해 열어보자. 위의 그림은 notepad.exe 파일의 시작 부분이며, PE head.. 2013. 11. 10.