PEHeader Klasse

Definition

Represents the Portable Executable (PE) file header.

public ref class PEHeader sealed
public sealed class PEHeader
type PEHeader = class
Public NotInheritable Class PEHeader
Vererbung
PEHeader

Beispiele

In diesem Beispiel wird gezeigt, wie Informationen aus dem PE-Header gelesen werden:

// 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}");
}

Hinweise

Das PE-Dateiformat wird durch die PE-Spezifikation definiert. Diese Klasse wird von der PEHeader Eigenschaft verwendet.

Eigenschaften

Name Beschreibung
AddressOfEntryPoint

Ruft die Adresse des Einstiegspunkts relativ zur Bildbasis ab, wenn die PE-Datei in den Arbeitsspeicher geladen wird.

BaseOfCode

Ruft die Adresse des Anfang-of-Code-Abschnitts relativ zur Bildbasis ab, wenn das Bild in den Arbeitsspeicher geladen wird.

BaseOfData

Ruft die Adresse des Anfang-of-Data-Abschnitts relativ zur Bildbasis ab, wenn das Bild in den Arbeitsspeicher geladen wird.

BaseRelocationTableDirectory

Ruft den Eintrag "Base Relocations Table" ab.

BoundImportTableDirectory

Ruft den Gebundenen Importtabelleneintrag ab.

CertificateTableDirectory

Ruft den Zertifikattabelleneintrag ab, der auf eine Tabelle mit Attributzertifikaten verweist.

CheckSum

Ruft die Prüfsumme der Bilddatei ab.

CopyrightTableDirectory

Ruft den Copyright Table-Eintrag ab.

CorHeaderTableDirectory

Ruft den CLI-Kopfzeilentabelleneintrag ab.

DebugTableDirectory

Ruft den Debugtabelleneintrag ab.

DelayImportTableDirectory

Ruft den Delay-Load ImportTabelleneintrag ab.

DllCharacteristics

Ruft die Merkmale einer Dynamic Link Library ab.

ExceptionTableDirectory

Ruft den Eintrag "Exception Table" ab.

ExportTableDirectory

Ruft den Eintrag "Tabelle exportieren" ab.

FileAlignment

Ruft den Ausrichtungsfaktor (in Bytes) ab, der zum Ausrichten der Rohdaten von Abschnitten in der Bilddatei verwendet wird.

GlobalPointerTableDirectory

Ruft den Global Pointer Table-Eintrag ab.

ImageBase

Ruft die bevorzugte Adresse des ersten Byte des Bilds ab, wenn es in den Arbeitsspeicher geladen wird.

ImportAddressTableDirectory

Ruft den Importadresstabelleneintrag ab.

ImportTableDirectory

Ruft den ImportTabelleneintrag ab.

LoadConfigTableDirectory

Ruft den Eintrag "Load Configuration Table" ab.

Magic

Ruft einen Wert ab, der das Format der Bilddatei angibt.

MajorImageVersion

Ruft die Hauptversionsnummer des Bilds ab.

MajorLinkerVersion

Ruft die Hauptversionsnummer des Linkers ab.

MajorOperatingSystemVersion

Ruft die Hauptversionsnummer des erforderlichen Betriebssystems ab.

MajorSubsystemVersion

Ruft die Hauptversionsnummer des Subsystems ab.

MinorImageVersion

Ruft die Nebenversionsnummer des Bilds ab.

MinorLinkerVersion

Ruft die Nebenversionsnummer des Linkers ab.

MinorOperatingSystemVersion

Ruft die Nebenversionsnummer des erforderlichen Betriebssystems ab.

MinorSubsystemVersion

Ruft die Nebenversionsnummer des Subsystems ab.

NumberOfRvaAndSizes

Ruft die Anzahl der Datenverzeichniseinträge im Rest des PEHeader. Jeder beschreibt einen Speicherort und eine Größe.

ResourceTableDirectory

Ruft den Ressourcentabelleneintrag ab.

SectionAlignment

Ruft die Ausrichtung (in Bytes) von Abschnitten ab, wenn sie in den Arbeitsspeicher geladen werden.

SizeOfCode

Ruft die Größe des Codeabschnitts (Text) oder die Summe aller Codeabschnitte ab, wenn mehrere Abschnitte vorhanden sind.

SizeOfHeaders

Ruft die kombinierte Größe eines MS DOS-Stubs, PE-Headers und Abschnittsheaders auf ein Vielfaches von FileAlignment auf.

SizeOfHeapCommit

Ruft die Größe des lokalen Heapbereichs ab, der commit ausgeführt werden soll.

SizeOfHeapReserve

Ruft die Größe des lokalen Heapbereichs ab, der reserviert werden soll. Nur SizeOfHeapCommit zugesichert; der Rest wird jeweils eine Seite zur Verfügung gestellt, bis die Reservegröße erreicht ist.

SizeOfImage

Ruft die Größe (in Byte) des Bilds ab, einschließlich aller Header, während das Bild im Arbeitsspeicher geladen wird.

SizeOfInitializedData

Ruft die Größe des initialisierten Datenabschnitts oder die Summe aller solchen Abschnitte ab, wenn mehrere Datenabschnitte vorhanden sind.

SizeOfStackCommit

Ruft die Größe des Stapels ab, der commit ausgeführt werden soll.

SizeOfStackReserve

Ruft die Größe des Stapels ab, der reserviert werden soll. Nur SizeOfStackCommit zugesichert; der Rest wird jeweils eine Seite zur Verfügung gestellt, bis die Reservegröße erreicht ist.

SizeOfUninitializedData

Ruft die Größe des nicht initialisierten Datenabschnitts (BSS) oder die Summe aller solchen Abschnitte ab, wenn mehrere BSS-Abschnitte vorhanden sind.

Subsystem

Ruft den Namen des Subsystems ab, das zum Ausführen dieses Images erforderlich ist.

ThreadLocalStorageTableDirectory

Ruft den Thread-Local Speichertabelleneintrag ab.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: