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) |