ZC: 主要是 非代码的 分析结构
1、
1.1、DosHeader: PE从偏移0开始就是
1.2、NtHeader: 位于 紧接着DosHeader的后面(具体位置为: DosHeader的偏移[0] + DosHeader.e_lfanew)
1.2.1、NtFileHeader: NtHeader.FileHeader
1.2.2、NtOptionalHeader: NtHeader.OptionalHeader
1.3、DataDirectory: NtOptionalHeader.DataDirectory
2、
sizeof(IMAGE_DOS_HEADER) : 64 [0x40] sizeof(IMAGE_NT_HEADERS32) : 248 [0xF8] sizeof(IMAGE_FILE_HEADER) : 20 [0x14] sizeof(IMAGE_OPTIONAL_HEADER32) : 224 [0xE0] sizeof(IMAGE_DATA_DIRECTORY) : 8 [0x8] IMAGE_DOS_HEADER.e_lfanew : 60 [0x3C] IMAGE_NT_HEADERS32.FileHeader : 4 [0x4] IMAGE_NT_HEADERS32.OptionalHeader : 24 [0x18] IMAGE_OPTIONAL_HEADER32.DataDirectory : 96 [0x60]
3、
3.1、WINNT.h
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP #define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor
3、
时间: 2024-09-30 06:37:36