typedef struct _IMAGE_FILE_HEADER
{
+04h WORD Machine; // 运行平台
+06h WORD NumberOfSections; // 文件的区块数目
+08h DWORD TimeDateStamp; // 文件创建日期和时间
+0Ch DWORD PointerToSymbolTable; // 指向符号表(主要用于调试)
+10h DWORD NumberOfSymbols; // 符号表中符号个数(同上)
+14h WORD SizeOfOptionalHeader; // IMAGE_OPTIONAL_HEADER32 结构大小
+16h WORD Characteristics; // 文件属性
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
该结构如下图所示:
Value | Meaning |
---|---|
| x86 |
| Intel Itanium |
| x64 |
The characteristics of the image. This member can be one or more of the following values.
Value | Meaning |
---|---|
| Relocation information was stripped from the file. The file must be loaded at its preferred base address. If the base address is not available, the loader reports an error. |
| The file is executable (there are no unresolved external references). |
| COFF line numbers were stripped from the file. |
| COFF symbol table entries were stripped from file. |
| Aggressively trim the working set. This value is obsolete as of Windows 2000. |
| The application can handle addresses larger than 2 GB. |
| The bytes of the word are reversed. This flag is obsolete. |
| The computer supports 32-bit words. |
| Debugging information was removed and stored separately in another file. |
| If the image is on removable media, copy it to and run it from the swap file. |
| If the image is on the network, copy it to and run it from the swap file. |
| The image is a system file. |
| The image is a DLL file. While it is an executable file, it cannot be run directly. |
| The file should be run only on a uniprocessor computer. |
| The bytes of the word are reversed. This flag is obsolete. |