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 |
取得 Copyright Table 專案。 |
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 stub、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) |