PEVerify-Tool (Peverify.exe)
Mit dem PEVerify-Tool können Entwickler, die MSIL (Microsoft Intermediate Language) generieren (Compilerwriter, Skriptmodulentwickler usw.), bestimmen, ob der MSIL-Code und die zugeordneten Metadaten den Anforderungen an die Typsicherheit entsprechen. Einige Compiler generieren nur dann überprüfbar typsicheren Code, wenn bestimmte Sprachkonstrukte nicht verwendet werden. Wenn Sie als Entwickler einen solchen Compiler verwenden, sollten Sie u. U. prüfen, ob die Typsicherheit des Codes eingeschränkt wurde. Hierzu können Sie das PEVerify-Tool für die Dateien ausführen und damit MSIL und Metadaten überprüfen.
peverify filename [options]
Parameter
Argument | Beschreibung |
---|---|
filename |
Die PE-Datei (Portable Executable), deren MSIL und Metadaten überprüft werden sollen. |
Option | Beschreibung |
---|---|
/break= maxErrorCount |
Bricht die Überprüfung nach maxErrorCount Fehlern ab. Dieser Parameter wird in .NET Framework, Version 2.0 oder höher, nicht unterstützt. |
/clock |
Erfasst und berichtet die folgenden Überprüfungszeiten in Millisekunden:
Die MD Val. cycle- und IL Ver. cycle-Zeiten umfassen die Zeit, die erforderlich ist, um die erforderlichen Prozeduren zum Starten und Herunterfahren auszuführen. Die MD Val. pure- und IL Ver pure-Zeiten umfassen die Zeit, die erforderlich ist, um nur die Validierung oder Überprüfung auszuführen. |
/help |
Zeigt die Befehlssyntax und Optionen für das Tool an. |
/hresult |
Zeigt Fehlercodes im hexadezimalen Format an. |
/ignore= hex.code [, hex.code] |
Ignoriert die angegebenen Fehlercodes. |
/ignore=@ responseFile |
Ignoriert die in der angegebenen Antwortdatei aufgelisteten Fehlercodes. |
/il |
Führt Überprüfungen der MSIL-Typsicherheit für Methoden durch, die in der durch filename angegebenen Assembly implementiert sind. Das Tool gibt eine detaillierte Beschreibung aller gefundenen Probleme zurück, sofern Sie nicht die /quiet-Option angeben. |
/md |
Führt Validierungen von Metadaten in der durch filename angegebenen Assembly aus. Dabei wird die gesamte Metadatenstruktur in der Datei durchlaufen und über alle Validierungsprobleme berichtet. |
/nologo |
Unterdrückt die Anzeige der Produktversion sowie von Copyrightinformationen. |
/nosymbols |
Unterdrückt in .NET Framework, Version 2.0, Zeilennummern, um Abwärtskompatibilität zu gewährleisten. |
/quiet |
Gibt den stillen Modus an. Hierbei wird die Ausgabe von Berichten über die während der Überprüfung gefundenen Probleme unterdrückt. Peverify.exe berichtet weiterhin über die Typsicherheit der Datei, es werden jedoch keine Informationen zu Problemen ausgegeben, die die Überprüfung der Typsicherheit verhindern. |
/unique |
Ignoriert wiederholt auftretende Fehlercodes. |
/verbose |
Zeigt in .NET Framework, Version 2.0, zusätzliche Informationen in MSIL-Überprüfungsmeldungen an. |
/? |
Zeigt die Befehlssyntax und Optionen für das Tool an. |
Hinweise
Die Common Language Runtime erfordert die typsichere Ausführung von Anwendungscode, um Sicherheits- und Isolierungsmechanismen zu erzwingen. Normalerweise kann Code, der nicht überprüfbar typsicher ist, nicht ausgeführt werden. Sie können jedoch die Sicherheitsrichtlinie so festlegen, dass vertrauenswürdiger, aber nicht überprüfbarer Code ausgeführt wird.
Wenn weder die /md-Option noch die /il-Option angegeben wurde, führt Peverify.exe beide Überprüfungen durch. Peverify.exe führt zuerst /md-Überprüfungen aus. Wenn keine Fehler auftreten, werden /il-Überprüfungen durchgeführt. Wenn Sie /md und /il angeben, werden auch /il-Überprüfungen durchgeführt, wenn in den Metadaten Fehler vorhanden sind. Daher stimmen peverify filename und peverify filename /md /il überein, wenn die Metadaten nicht fehlerhaft sind.
Peverify.exe führt umfangreiche MSIL-Überprüfungen anhand der Datenflussanalyse sowie einer Liste mit mehreren hundert Regeln für die Gültigkeit von Metadaten durch. Ausführliche Informationen zu den Überprüfungen durch Peverify.exe finden Sie unter "Metadata Validation Specification" und "MSIL Instruction Set Specification" im Ordner Tools Developers Guide von .NET Framework SDK.
Beachten Sie, dass .NET Framework, Version 2.0 oder höher, überprüfbare byref
-Rückgaben unterstützt, die unter Verwendung der folgenden MSIL-Anweisungen angegeben werden: dup
, ldsflda
, ldflda
, ldelema
, call
und unbox
.
Beispiele
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe
implementiert sind.
peverify myAssembly.exe /md /il
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt Peverify.exe die folgende Meldung an.
All classes and methods in myAssembly.exe Verified
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe
implementiert sind. Das Tool zeigt an, wie viel Zeit zur Durchführung dieser Überprüfungen erforderlich ist.
peverify myAssembly.exe /md /il /clock
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt Peverify.exe die folgende Meldung an.
All classes and methods in myAssembly.exe Verified
Timing: Total run 320 msec
MD Val.cycle 40 msec
MD Val.pure 10 msec
IL Ver.cycle 270 msec
IL Ver.pure 230 msec
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe
implementiert sind. Peverify.exe wird bei Erreichen der maximalen Fehleranzahl von 100 jedoch angehalten. Außerdem ignoriert das Tool die angegebenen Fehlercodes.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
Der folgende Befehl führt zum gleichen Ergebnis wie das vorherige Beispiel, nur werden hier die in der Antwortdatei ignoreErrors.rsp
zu ignorierenden Fehlercodes angegeben.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Die Antwortdatei kann eine durch Komma getrennte Liste von Fehlercodes enthalten.
0x12345678, 0xABCD1234
Wahlweise kann die Antwortdatei auch mit einem Fehlercode pro Zeile formatiert werden.
0x12345678
0xABCD1234
Siehe auch
Referenz
.NET Framework-Tools
SDK-Eingabeaufforderung
Konzepte
Schreiben von überprüfbar typsicherem Code
Typsicherheit und Sicherheit