PEReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Reader für PE-Dateien (Portable Executable Format) bereit.
public ref class PEReader sealed : IDisposable
public sealed class PEReader : IDisposable
type PEReader = class
interface IDisposable
Public NotInheritable Class PEReader
Implements IDisposable
- Vererbung
-
PEReader
- Implementiert
Hinweise
Vorsicht
Dieser Typ ist nicht für die Verarbeitung nicht vertrauenswürdiger Eingaben konzipiert. Fehlerhafte oder böswillige PE-Dateien können zu unerwartetem Verhalten führen, einschließlich nicht gebundener Speicherzugriff, Abstürze oder Blockaden. Wird nur für vertrauenswürdige PE-Dateien oder -Bilder verwendet PEReader .
Die Implementierung ist threadsicher. Das heißt, mehrere Threads können Daten parallel vom Reader lesen. Die Entsorgung des Lesers ist nicht threadsicher (siehe Dispose()).
Konstruktoren
| Name | Beschreibung |
|---|---|
| PEReader(Byte*, Int32, Boolean) |
Erstellt einen portablen ausführbaren Reader über ein PE-Image, das im Arbeitsspeicher gespeichert ist. Ein Kennzeichen gibt an, ob das Bild bereits in den Arbeitsspeicher geladen wurde. |
| PEReader(Byte*, Int32) |
Erstellt einen portablen ausführbaren Reader über ein PE-Image, das im Arbeitsspeicher gespeichert ist. |
| PEReader(ImmutableArray<Byte>) |
Erstellt einen portablen ausführbaren Reader über ein PE-Image, das in einem Bytearray gespeichert ist. |
| PEReader(Stream, PEStreamOptions, Int32) |
Erstellt einen portablen ausführbaren Reader über ein PE-Bild der angegebenen Größe beginnend an der aktuellen Position des Datenstroms. |
| PEReader(Stream, PEStreamOptions) |
Erstellt einen portablen ausführbaren Reader über ein PE-Bild, das an seiner aktuellen Position und am Ende des Datenstroms in einem Datenstrom gespeichert ist. |
| PEReader(Stream) |
Erstellt einen portablen ausführbaren Reader über ein PE-Image, das in einem Datenstrom gespeichert ist. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| HasMetadata |
Ruft einen Wert ab, der angibt, ob das PE-Image CLI-Metadaten enthält. |
| IsEntireImageAvailable |
Ruft einen Wert ab, der angibt, ob der Leser auf das gesamte PE-Bild zugreifen kann. |
| IsLoadedImage |
Ruft einen Wert ab, der angibt, ob das PE-Image vom Betriebssystemladeprogramm in den Arbeitsspeicher geladen wurde. |
| PEHeaders |
Ruft die PE-Header ab. |
Methoden
| Name | Beschreibung |
|---|---|
| Dispose() |
Entfernt alle vom Leser zugewiesenen Arbeitsspeicher. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetEntireImage() |
Ruft ein PEMemoryBlock Objekt ab, das das gesamte PE-Bild enthält. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetMetadata() |
Lädt einen PE-Abschnitt, der CLI-Metadaten enthält. |
| GetSectionData(Int32) |
Lädt den PE-Abschnitt, der die angegebene relative virtuelle Adresse enthält, in den Arbeitsspeicher und gibt einen Speicherblock zurück, der an dieser Adresse beginnt und am Ende des enthaltenden Abschnitts endet. |
| GetSectionData(String) |
Lädt den PE-Abschnitt mit dem angegebenen Namen in den Arbeitsspeicher und gibt einen Speicherblock zurück, der den Abschnitt umfasst. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ReadCodeViewDebugDirectoryData(DebugDirectoryEntry) |
Liest die Daten, auf die durch den angegebenen Debugverzeichniseintrag verwiesen wird, und interpretiert sie als CodeView. |
| ReadDebugDirectory() |
Liest alle Debugverzeichnistabelleneinträge. |
| ReadEmbeddedPortablePdbDebugDirectoryData(DebugDirectoryEntry) |
Liest die Daten, auf die durch den angegebenen Debugverzeichniseintrag verwiesen wird, und interpretiert sie als eingebettetes portables PDB-Blob. |
| ReadPdbChecksumDebugDirectoryData(DebugDirectoryEntry) |
Liest die Daten, auf die durch den angegebenen Debugverzeichniseintrag verwiesen wird, und interpretiert sie als PDB-Prüfsummeneintrag. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TryOpenAssociatedPortablePdb(String, Func<String,Stream>, MetadataReaderProvider, String) |
Öffnet einen portablen PDB, der diesem PE-Image zugeordnet ist. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetMetadataReader(PEReader, MetadataReaderOptions, MetadataStringDecoder) |
Ruft einen Metadatenleser mit der angegebenen Metadatenlesekonfiguration und Codierungskonfiguration aus einer PEReader. |
| GetMetadataReader(PEReader, MetadataReaderOptions) |
Ruft einen Metadatenleser mit der angegebenen Metadatenlesekonfiguration aus einer PEReader. |
| GetMetadataReader(PEReader) |
Ruft ein MetadataReader von einem PEReader. |
| GetMethodBody(PEReader, Int32) |
Gibt einen Textkörperblock einer Methode mit der angegebenen relativen virtuellen Adresse (Relative Virtual Address, RVA) zurück. |