티스토리 뷰
DOS HEADER
DOS STUB
NT HEADER
SECTION HEADER
SECTION
DOS header 밑에 DOS Stub 있고 옵션(DOS Stub은 없을 수도 있고, 각 파일마다 크기가 다름)
VB, VC++, Delphi 로 컴파일 시 DOS Stub 에는 윈도우 프로그램을 도스환경에서 실행할때 오류 메시지를 보여주는 코드가 있다.
IMAGE_DOS_HEADER : 문자열 MZ(0x4D5A) 로 시작한다. 윈도우 파일은 이 문자로 시작함.
IMAGE_NT_HEADER : PE00 로 시작 (0x50450000), IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER32
IMAGE_FILE_HEADER : 파일속성(CPU 타입, 섹션수(코드, 데이터, 리소스 등), 파일생성 일자, 파일종류)IMAGE_OPTIONAL_HEADER32 : 파일실행정보(프로그램시작주소(상대주소), 헤더전체크기, 파일구분(SYS, GUI기반파일(EXE, DLL), 콘솔기반파일(CMD.exe))
.text
실행파일 코드
.data
전역, 정적변수
.idata
다른 DLL 로 부터 가져다 쓰는 함수들의 정보
.edata
다른 모듈(프로그램 등)에 호출해서 쓸 수 있도록 공개하는 함수들의 정보
(DLL 파일에서 export 시킨 함수들)