PEHeader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示可移植可执行文件(PE)文件标头。
public ref class PEHeader sealed
public sealed class PEHeader
type PEHeader = class
Public NotInheritable Class PEHeader
- 继承
-
PEHeader
示例
此示例演示如何从 PE 标头读取信息:
// Open the Portable Executable (PE) file
using var fs = new FileStream(@"Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);
// Display PE header information
if (peReader.PEHeaders.PEHeader is PEHeader header)
{
Console.WriteLine($"Image size, bytes: {header.SizeOfImage}");
Console.WriteLine($"Image base: 0x{header.ImageBase:X}");
Console.WriteLine($"File alignment: 0x{header.FileAlignment:X}");
Console.WriteLine($"Section alignment: 0x{header.SectionAlignment:X}");
Console.WriteLine($"Subsystem: {header.Subsystem}");
Console.WriteLine($"Dll characteristics: {header.DllCharacteristics}");
Console.WriteLine($"Linker version: {header.MajorLinkerVersion}.{header.MinorLinkerVersion}");
Console.WriteLine($"OS version: {header.MajorOperatingSystemVersion}.{header.MinorOperatingSystemVersion}");
}
注解
PE 文件头格式由 PE 规范定义。 此属性使用 PEHeader 此类。
属性
| 名称 | 说明 |
|---|---|
| AddressOfEntryPoint |
获取将 PE 文件加载到内存中时相对于映像基的入口点的地址。 |
| BaseOfCode |
获取映像加载到内存中时相对于映像基的起始代码部分的地址。 |
| BaseOfData |
获取图像加载到内存中时相对于映像基的起始数据部分的地址。 |
| BaseRelocationTableDirectory |
获取基重定位表项。 |
| BoundImportTableDirectory |
获取绑定导入表项。 |
| CertificateTableDirectory |
获取指向属性证书表的证书表条目。 |
| CheckSum |
获取图像文件校验和。 |
| CopyrightTableDirectory |
获取版权表条目。 |
| CorHeaderTableDirectory |
获取 CLI 标头表项。 |
| DebugTableDirectory |
获取调试表条目。 |
| DelayImportTableDirectory |
获取 Delay-Load 导入表项。 |
| DllCharacteristics |
获取动态链接库的特征。 |
| ExceptionTableDirectory |
获取异常表条目。 |
| ExportTableDirectory |
获取导出表项。 |
| FileAlignment |
获取用于对齐图像文件中节的原始数据的对齐因子(以字节为单位)。 |
| GlobalPointerTableDirectory |
获取全局指针表项。 |
| ImageBase |
获取加载到内存中时图像的第一个字节的首选地址。 |
| ImportAddressTableDirectory |
获取“导入地址表”条目。 |
| ImportTableDirectory |
获取导入表项。 |
| LoadConfigTableDirectory |
获取“加载配置表”条目。 |
| Magic |
获取一个值,该值标识图像文件的格式。 |
| MajorImageVersion |
获取映像的主要版本号。 |
| MajorLinkerVersion |
获取链接器主版本号。 |
| MajorOperatingSystemVersion |
获取所需操作系统的主版本号。 |
| MajorSubsystemVersion |
获取子系统的主要版本号。 |
| MinorImageVersion |
获取映像的次要版本号。 |
| MinorLinkerVersion |
获取链接器次要版本号。 |
| MinorOperatingSystemVersion |
获取所需操作系统的次要版本号。 |
| MinorSubsystemVersion |
获取子系统的次要版本号。 |
| NumberOfRvaAndSizes |
获取其余 PEHeader部分的数据目录条目数。 每项都描述位置和大小。 |
| ResourceTableDirectory |
获取“资源表”条目。 |
| SectionAlignment |
获取将分区加载到内存中的对齐方式(以字节为单位)。 |
| SizeOfCode |
获取代码(text)节的大小,或所有代码节的总和(如果有多个部分)。 |
| SizeOfHeaders |
获取 MS DOS 存根、PE 标头和节标头的组合大小,这些标头向上舍入为 FileAlignment 的倍数。 |
| SizeOfHeapCommit |
获取要提交的本地堆空间的大小。 |
| SizeOfHeapReserve |
获取要保留的本地堆空间的大小。 仅 SizeOfHeapCommit 提交;其余项在达到保留大小之前一次提供一页。 |
| SizeOfImage |
获取图像的大小(以字节为单位),包括所有标头,因为图像在内存中加载。 |
| SizeOfInitializedData |
获取初始化的数据节的大小,或者如果有多个数据节,则获取所有此类节的总和。 |
| SizeOfStackCommit |
获取要提交的堆栈的大小。 |
| SizeOfStackReserve |
获取要保留的堆栈的大小。 仅 SizeOfStackCommit 提交;其余项在达到保留大小之前一次提供一页。 |
| SizeOfUninitializedData |
获取未初始化的数据节(BSS)的大小;如果有多个 BSS 节,则获取所有此类节的总和。 |
| Subsystem |
获取运行此映像所需的子系统的名称。 |
| ThreadLocalStorageTableDirectory |
获取 Thread-Local 存储表项。 |
方法
| 名称 | 说明 |
|---|---|
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |