반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩
- 멀웨어
- 다운로드
- C 프로그래밍
- SQLD
- Code Up
- defcon.mem
- 오늘의 보안동향
- Memory Forensics
- 오늘의 영어
- 오늘의 보안
- sql
- 정보보안기사
- c언어
- Volatility
- C
- Defcon DFIR CTF 2019
- C language
- 랜섬웨어
- 보안동향
- 악성코드
- 리버싱 핵심원리
- ctf
- 코드업
- 보안
- 설치
- cmd
- codeup
- DEFCON
- 리버싱
Archives
- Today
- Total
오브의 빛나는 별
2부 13장 PE File Format(3) 본문
반응형
안녕하세요, 오브입니다.
오늘은 NT Header에 대해 알아보겠습니다.
https://staraube.tistory.com/51?category=548043
https://staraube.tistory.com/52?category=548043
PE File Format
13.3.3. NT Header
- NT header 구조체 IMAGE_NT_HEADERS
typedef struct _IMAGE_NT_HEADERS {
DWORD Signature; // PE Signature 50450000 (“PE"00)
lMAGE FILE HEADER FileHeader;
lMAGE_OPTIONAL_HEADER32 OptionalHeader;
} lMAGE_NT_HEADERS32 , *PlMAGE_NT_HEADERS32;
- IMAGE_NT_HEADERS 구조체는 3개의 멤버로 이루어짐
- 크기: F8
- Signature: 50450000h로 “PE”00 값
- FileHeader
- Optional Header
13.3.4. NT Header-File Header
- IMAGE_FILE_HEADER: 파일의 개략적인 속성 나타냄
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;
13 PE File Formal 149
WORD NumberOfSections;
DWORD TimeDateStamp;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
RD SizeOfOptionalHeader;
ORD Characteristics;
} 1MAGE_F1LE_HEADER, *PlMAGE_F1LE_HEADER;
- IMAGE_FILE_HEADER는 Machine, NumberOfSections, SizeOfOptionalHeader, Characteristics 멤버가 중요
1. Machine
- CPU 별로 고유한 값이며 32비트 Intel x86 호환 칩은 14C의 값을 가짐
2. NumberOfSections
- 섹션의 개수를 나타냄
- 반드시 0보다 커야하고 정의된 섹션 개수와 실제 섹션이 다르면 실행 에러 발생
3. SizeOfOptionalHeader
- lMAGE_NT_HEADERS 구조체의 마지막 멤버는 IMAGE_OPTIONAL_HEADER32 구조체인데 이 구조체의 크기 나타냄
- IMAGE_OPTIONAL_HEADER32는 C언어의 구조체이기 때문에 그 크기가 정해져있음
- 근데 Windows의 PE 로더는 SizeOfOptionalHeader 값을 보고 IMAGE_OPTIONAL_HEADER32 값 결정
- PE32+ 형태의 파일인 경우 IMAGE_OPTIONAL_HEADER64 구조체 사용
4. Characteristics
- 파일의 속성을 나타내는 값으로 실행 가능한 형태인지 혹은 DLL 파일인지 등의 정보들이 bit OR 형식으로 조합
- PE 파일 중 Characteristics 값에 0002h가 없는 경우: .obj와 같은 object 파일 및 resource DLL 같은 파일
- IMAGE_ FILE_HEADER의 TimeDateStamp: 파일의 실행에 영향을 미치지 않는 값. 해당 파일의 빌드 시간을 나타낸 값
- 개발 도구에 따라서 이 값을 셋팅해주는 도구가 있고 아닌 도구가 있음.
반응형
'리버싱' 카테고리의 다른 글
2부 13장 PE File Format(5) (0) | 2022.04.24 |
---|---|
2부 13장 PE File Format(4) (0) | 2022.04.24 |
2부 13장 PE File Format(2) (0) | 2022.04.23 |
2부 13장 PE File Format(1) (0) | 2022.04.23 |
1부 3장 리틀 엔디언 표기법 (0) | 2022.04.23 |