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 プロパティによって使用されます。

プロパティ

名前 説明
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 スタブ、PE ヘッダー、およびセクション ヘッダーの結合サイズを FileAlignment の倍数に切り上げて取得します。

SizeOfHeapCommit

コミットするローカル ヒープ領域のサイズを取得します。

SizeOfHeapReserve

予約するローカル ヒープ領域のサイズを取得します。 SizeOfHeapCommitのみがコミットされます。残りは、予約サイズに達するまで一度に 1 ページずつ使用できます。

SizeOfImage

イメージがメモリに読み込まれるときの、すべてのヘッダーを含むイメージのサイズ (バイト単位) を取得します。

SizeOfInitializedData

初期化されたデータ セクションのサイズ、または複数のデータ セクションがある場合は、そのようなすべてのセクションの合計を取得します。

SizeOfStackCommit

コミットするスタックのサイズを取得します。

SizeOfStackReserve

予約するスタックのサイズを取得します。 SizeOfStackCommitのみがコミットされます。残りは、予約サイズに達するまで一度に 1 ページずつ使用できます。

SizeOfUninitializedData

初期化されていないデータ セクション (BSS) のサイズ、または複数の BSS セクションがある場合は、そのようなすべてのセクションの合計を取得します。

Subsystem

このイメージを実行するために必要なサブシステムの名前を取得します。

ThreadLocalStorageTableDirectory

Thread-Local ストレージ テーブル エントリを取得します。

メソッド

名前 説明
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象