-
PE Header(4)Hack/Reversing 2015. 2. 2. 04:28
IMAGE_OPTIONAL_HEADER
1. Magic
해당 멤버는 IMAGE_OPTIONAL_HEADER32인경우 10Bh, IMAGE_OPTIONAL_HEADER64인경우 20Bh값을 가지고있다.
2.AddressOfEntryPoint
EP(EntryPoint)의 RVA 값
3.ImageBase
프로세스의 가상메모리 범위는 32비트의 경우 0~FFFFFFFF까지이다.
ImageBase는 pe파일이 로딩되는 시작주소를 나타낸다.
EXE,DLL일경우 user memory영역인 0~7FFFFFFF범위를 가지고,
SYS파일일경우 kernel memory영역인 80000000 ~ FFFFFFFF범위를 가진다.
비쥬얼스튜디오나 VC++등의 컴파일러를통해 EXE를만들면 ImageBase는 400000값을가진다
DLL일 경우 ImageBase값은 100000이다.
4.SectionAlignment, FileAlignment
PE파일은 섹션으로 나뉘어져있다. 파일에서 섹션의최소단위들을 나타내는것이 FileAlignment, 메모리에서 섹션 최소단위를 나타내는것이 SectionAlignment이다.
5.SizeOfImage
PE파일이 메모리에 로딩됬을때 가상메모리에서 PE Image가 차지하는 크기를 나타낸다.
일반적으로 파일의 크기와 메모리에 로딩된크기는 서로다르다.
6.SizeOfHeader
PE Header의 전체크기를 나타낸다.
7. SubSystem
Driver file(sys)
GUI,CUI
8.NumberOfRvaAndSizes
마지막 멤버인 DataDirectory배열의 개수
9. DataDirectory
IMAGE_DATA_DIRECTORY구조체의 배열로, 배열의 각항목마다 값이존재한다.
'Hack > Reversing' 카테고리의 다른 글
메모리 구조 (data) (0) 2015.02.09 메모리구조 (code) (0) 2015.02.09 PE Header(3) (0) 2015.02.02 PE Header(2) (0) 2015.02.02 PE Header (0) 2015.02.02