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
, call
och 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