PEHeader 類別

定義

代表可攜式可執行檔(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)

適用於