Peverify.exe (PEVerify-hulpprogramma)
Het HULPPROGRAMMA PEVerify helpt ontwikkelaars die microsoft tussenliggende taal (MSIL) genereren (zoals compilerschrijvers en scriptengineontwikkelaars) om te bepalen of hun MSIL-code en bijbehorende metagegevens voldoen aan de veiligheidsvereisten van het type. Sommige compilers genereren alleen typeveilige code als u bepaalde taalconstructies vermijdt. Als u een dergelijke compiler gebruikt, kunt u controleren of u geen inbreuk hebt gemaakt op het type veiligheid van uw code. U kunt het PEVerify-hulpprogramma uitvoeren op uw bestanden om de MSIL en metagegevens te controleren.
Dit hulpprogramma wordt automatisch geïnstalleerd met Visual Studio. Als u het hulpprogramma wilt uitvoeren, gebruikt u de Visual Studio Developer-opdrachtprompt of Visual Studio Developer PowerShell.
Syntaxis
peverify filename [options]
Parameters
Argument | Beschrijving |
---|---|
filename | Het draagbare uitvoerbare bestand (PE) waarvoor de MSIL en metagegevens moeten worden gecontroleerd. |
Optie | Omschrijving |
---|---|
/break= maxErrorCount | Hiermee wordt verificatie afgebroken na maxErrorCount-fouten . Deze parameter wordt niet ondersteund in .NET Framework versie 2.0 of hoger. |
/klok | Meet en rapporteert de volgende verificatietijden in milliseconden: MD Val. cycle Validatiecyclus voor metagegevens MD Val. zuiver Validatie van metagegevens puur IL Ver. cycle Verificatiecyclus van Microsoft tussenliggende taal (MSIL) IL Ver pure MSIL-verificatie puur De MD Val. cyclus en IL Ver. cyclustijden omvatten de tijd die nodig is om de benodigde opstart- en afsluitprocedures uit te voeren. De MD Val. pure en IL Ver pure tijden weerspiegelen de tijd die nodig is om de validatie of verificatie alleen uit te voeren. |
/Help | Geeft de opdrachtsyntaxis en opties voor het hulpprogramma weer. |
/hresult | Geeft foutcodes weer in hexadecimale notatie. |
/ignore= hex.code [, hex.code] | Negeert de opgegeven foutcodes. |
/ignore=@ responseFile | Negeert de foutcodes die worden vermeld in het opgegeven antwoordbestand. |
/Il | Voert veiligheidscontroles van het MSIL-type uit op methoden die zijn geïmplementeerd in de assembly die is opgegeven door bestandsnaam. Het hulpprogramma retourneert gedetailleerde beschrijvingen voor elk gevonden probleem, tenzij u de optie /quiet opgeeft. |
/Md | Hiermee worden validatiecontroles voor metagegevens uitgevoerd op de assembly die is opgegeven door de bestandsnaam. Met deze optie wordt de volledige metagegevensstructuur in het bestand beschreven en worden alle validatieproblemen gerapporteerd. |
/nologo | Onderdrukt de weergave van productversie en copyrightinformatie. |
/nosymbolen | In .NET Framework versie 2.0 onderdrukt u regelnummers voor compatibiliteit met eerdere versies. |
/rustig | Hiermee geeft u de stille modus; onderdrukt de uitvoer van de verificatieprobleemrapporten. Peverify.exe rapporteert nog steeds of het bestand veilig is, maar rapporteert geen informatie over problemen die de veiligheid van het type verhinderen. |
/transparent |
Controleer alleen de transparante methoden. |
/uniek | Hiermee worden herhalende foutcodes genegeerd. |
/breedsprakig | In .NET Framework versie 2.0 geeft u aanvullende informatie weer in MSIL-verificatieberichten. |
/? | Geeft de opdrachtsyntaxis en opties voor het hulpprogramma weer. |
Opmerkingen
De algemene taalruntime is afhankelijk van de typeveilige uitvoering van toepassingscode om beveiligings- en isolatiemechanismen af te dwingen. Normaal gesproken kan code die niet verifieerbaar type veilig is niet worden uitgevoerd, hoewel u beveiligingsbeleid kunt instellen om de uitvoering van vertrouwde maar niet-verifieerbare code toe te staan.
Als de opties /md of /il niet zijn opgegeven, Peverify.exe beide typen controles uitvoert. Peverify.exe voert eerst /md-controles uit. Als er geen fouten zijn, worden /il controles uitgevoerd. Als u zowel /md als /il opgeeft, worden /il-controles uitgevoerd, zelfs als er fouten zijn in de metagegevens. Als er dus geen metagegevensfouten zijn, is peverify-bestandsnaam gelijk aan peverify bestandsnaam /md /il.
Peverify.exe voert uitgebreide MSIL-verificatiecontroles uit op basis van gegevensstroomanalyse plus een lijst met enkele honderden regels voor geldige metagegevens. Voor gedetailleerde informatie over de controles die Peverify.exe uitvoert, raadpleegt u de 'Specificatie voor validatie van metagegevens' en de 'MSIL-instructiesetspecificatie' in de map Hulpprogramma's ontwikkelaarshandleiding in de Windows SDK.
.NET Framework versie 2.0 of hoger ondersteunt verifieerbare byref
retourneert die zijn opgegeven met behulp van de volgende MSIL-instructies: dup
, ldsflda
, ldflda
, ldelema
, , en call
unbox
.
Voorbeelden
Met de volgende opdracht worden validatiecontroles voor metagegevens uitgevoerd en veiligheidscontroles van het MSIL-type voor methoden die in de assembly myAssembly.exe
zijn geïmplementeerd.
peverify myAssembly.exe /md /il
Wanneer de bovenstaande aanvraag is voltooid, wordt het volgende bericht weergegeven Peverify.exe.
All classes and methods in myAssembly.exe Verified
Met de volgende opdracht worden validatiecontroles voor metagegevens uitgevoerd en veiligheidscontroles van het MSIL-type voor methoden die in de assembly myAssembly.exe
zijn geïmplementeerd. Het hulpprogramma geeft de tijd weer die nodig is om deze controles uit te voeren.
peverify myAssembly.exe /md /il /clock
Wanneer de bovenstaande aanvraag is voltooid, wordt het volgende bericht weergegeven Peverify.exe.
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
Met de volgende opdracht worden validatiecontroles voor metagegevens uitgevoerd en veiligheidscontroles van het MSIL-type voor methoden die in de assembly myAssembly.exe
zijn geïmplementeerd. Peverify.exe stopt echter wanneer het maximumaantal fouten van 100 wordt bereikt. Het hulpprogramma negeert ook de opgegeven foutcodes.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
De volgende opdracht produceert hetzelfde resultaat als in het bovenstaande voorbeeld, maar geeft de foutcodes op die moeten worden genegeerd in het antwoordbestand ignoreErrors.rsp
.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Het antwoordbestand kan een door komma's gescheiden lijst met foutcodes bevatten.
0x12345678, 0xABCD1234
U kunt het antwoordbestand ook opmaken met één foutcode per regel.
0x12345678
0xABCD1234