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 |
取得版權表條目。 |
| 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) |