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 類別。
屬性
| 名稱 | Description |
|---|---|
| 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 專案。 |
方法
| 名稱 | Description |
|---|---|
| Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
| GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
| GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
| MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
| ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |