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 |
获取代码(文本)段的大小,或者如果有多个部分,则获取所有代码段的和。 |
| 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) |