Dela via


Peverify.exe (PEVerify-verktyg)

PEVerify-verktyget hjälper utvecklare som genererar Microsofts mellanliggande språk (MSIL) (till exempel kompilatorförfattare och utvecklare av skriptmotor) att avgöra om deras MSIL-kod och associerade metadata uppfyller typsäkerhetskraven. Vissa kompilatorer genererar verifierbart typsäker kod endast om du undviker att använda vissa språkkonstruktioner. Om du använder en sådan kompilator kanske du vill kontrollera att du inte har komprometterat kodens typsäkerhet. Du kan köra PEVerify-verktyget på dina filer för att kontrollera MSIL och metadata.

Det här verktyget installeras automatiskt med Visual Studio. Om du vill köra verktyget använder du Visual Studio Developer Command Prompt eller Visual Studio Developer PowerShell.

Syntax

peverify filename [options]

Parametrar

Argument beskrivning
filename Den bärbara körbara filen (PE) för vilken du kan kontrollera MSIL och metadata.
Alternativ Description
/break= maxErrorCount Avbryter verifieringen efter maxErrorCount-fel .

Den här parametern stöds inte i .NET Framework version 2.0 eller senare.
/klocka Mäter och rapporterar följande verifieringstider i millisekunder:

MD Val. cykel
Valideringscykel för metadata

MD Val. ren
Validering av metadata är ren

IL Ver. cykel
Verifieringscykel för Microsofts mellanliggande språk (MSIL)

IL Ver ren
MSIL-verifiering ren

Md Val.-cykeln och IL Ver.-cykeltiderna omfattar den tid som krävs för att utföra nödvändiga start- och avstängningsprocedurer. Md Val. pure och IL Ver rena tider återspeglar den tid som krävs för att endast utföra valideringen eller verifieringen.
/Hjälp Visar kommandosyntax och alternativ för verktyget.
/hresult Visar felkoder i hexadecimalt format.
/ignore= hex.code [, hex.code] Ignorerar de angivna felkoderna.
/ignore=@ responseFile Ignorerar felkoderna som anges i den angivna svarsfilen.
/Il Utför säkerhetsverifieringskontroller av MSIL-typ för metoder som implementerats i sammansättningen som anges av filnamnet. Verktyget returnerar detaljerade beskrivningar för varje problem som hittas om du inte anger alternativet /quiet .
/Md Utför metadataverifieringskontroller på sammansättningen som anges av filnamnet. Det här alternativet vägleder den fullständiga metadatastrukturen i filen och rapporterar alla valideringsproblem som påträffas.
/nologo Undertrycker visning av produktversion och upphovsrättsinformation.
/nosymbols I .NET Framework version 2.0 utelämnas radnummer för bakåtkompatibilitet.
/stilla Anger tyst läge. undertrycker utdata från verifieringsproblemrapporterna. Peverify.exe rapporterar fortfarande om filen är typsäker, men rapporterar inte information om problem som förhindrar typsäkerhetsverifiering.
/transparent Kontrollera endast de transparenta metoderna.
/unik Ignorerar upprepade felkoder.
/mångordig I .NET Framework version 2.0 visas ytterligare information i MSIL-verifieringsmeddelanden.
/? Visar kommandosyntax och alternativ för verktyget.

Kommentarer

Den vanliga språkkörningen förlitar sig på en typsäker körning av programkod för att framtvinga säkerhets- och isoleringsmekanismer. Normalt kan kod som inte är verifierbart typsäker inte köras, även om du kan ange en säkerhetsprincip för att tillåta körning av betrodd men icke-verifierad kod.

Om varken alternativen /md eller /il anges utför Peverify.exe båda typerna av kontroller. Peverify.exe utför /md-kontroller först. Om det inte finns några fel görs /il-kontroller . Om du anger både /md och /il görs /il-kontroller även om det finns fel i metadata. Om det inte finns några metadatafel motsvarar peverify-filnamnet peverify-filnamnet /md /il.

Peverify.exe utför omfattande MSIL-verifieringskontroller baserat på dataflödesanalys plus en lista med flera hundra regler för giltiga metadata. Detaljerad information om de kontroller som Peverify.exe utför finns i "Valideringsspecifikation för metadata" och "MSIL-instruktionsuppsättningsspecifikation" i mappen Verktyg utvecklarguide i Windows SDK.

.NET Framework version 2.0 eller senare stöder verifierbara byref returer som anges med hjälp av följande MSIL-instruktioner: dup, ldsflda, ldflda, ldelema, calloch unbox.

Exempel

Följande kommando utför valideringskontroller av metadata och säkerhetsverifieringskontroller av MSIL-typ för metoder som implementeras i sammansättningen myAssembly.exe.

peverify myAssembly.exe /md /il

När ovanstående begäran har slutförts visar Peverify.exe följande meddelande.

All classes and methods in myAssembly.exe Verified

Följande kommando utför valideringskontroller av metadata och säkerhetsverifieringskontroller av MSIL-typ för metoder som implementeras i sammansättningen myAssembly.exe. Verktyget visar den tid som krävs för att utföra dessa kontroller.

peverify myAssembly.exe /md /il /clock

När ovanstående begäran har slutförts visar Peverify.exe följande meddelande.

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

Följande kommando utför valideringskontroller av metadata och säkerhetsverifieringskontroller av MSIL-typ för metoder som implementeras i sammansättningen myAssembly.exe. Peverify.exe stoppas dock när den når det maximala antalet fel på 100. Verktyget ignorerar även de angivna felkoderna.

peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234

Följande kommando ger samma resultat som föregående exempel, men anger felkoderna som ska ignoreras i svarsfilen ignoreErrors.rsp.

peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp

Svarsfilen kan innehålla en kommaavgränsad lista med felkoder.

0x12345678, 0xABCD1234

Alternativt kan svarsfilen formateras med en felkod per rad.

0x12345678
0xABCD1234

Se även