Peverify.exe (nástroj PEVerify)
Nástroj PEVerify pomáhá vývojářům, kteří generují jazyk MSIL (Microsoft Intermediate Language) (například zapisovače kompilátoru a vývojáře skriptů), určit, jestli jejich kód MSIL a přidružená metadata splňují požadavky na bezpečnost typů. Některé kompilátory generují kód ověřitelně bezpečného typu pouze tehdy, když se vyhnete určitým jazykovým konstrukcím. Pokud používáte takový kompilátor, možná budete chtít ověřit, že jste neohrozili bezpečnost typu kódu. Nástroj PEVerify můžete na svých souborech spustit a zkontrolovat jazyk MSIL a metadata.
Tento nástroj je automaticky nainstalován se sadou Visual Studio. Ke spuštění nástroje použijte Visual Studio Developer Command Prompt nebo Visual Studio Developer PowerShell.
Syntaxe
peverify filename [options]
Parametry
Argument | Popis |
---|---|
filename | Přenosný spustitelný soubor (PE), pro který chcete zkontrolovat jazyk MSIL a metadata. |
Možnost | Popis |
---|---|
/break= maxErrorCount | Přeruší ověření po chybách maxErrorCount . Tento parametr není podporován v rozhraní .NET Framework verze 2.0 a vyšší. |
/hodiny | Změří a oznámí následující časy ověření v milisekundách: MD Val. cycle Cyklus ověření metadat MD Val. ryzí Čisté ověření metadat IL Ver. cycle Cyklus ověřování Microsoft Intermediate Language (MSIL) IL Ver pure Čisté ověřování MSIL Doba cyklu MD Val. a IL Ver. zahrnují čas potřebný k provedení nezbytných postupů spuštění a vypnutí. Hodnota MD Val. pure a IL Ver čisté časy odrážejí čas potřebný k provedení ověření nebo ověření pouze. |
/Pomoc | Zobrazí syntaxi příkazu a možnosti nástroje. |
/hresult | Zobrazí kódy chyb v šestnáctkovém formátu. |
/ignore= hex.code [, hex.code] | Ignoruje zadané kódy chyb. |
/ignore=@ responseFile | Ignoruje kódy chyb uvedené v zadaném souboru odpovědí. |
/Il | Provádí kontroly zabezpečení typu MSIL pro metody implementované v sestavení určeném názvem souboru. Nástroj vrátí podrobné popisy jednotlivých nalezených problémů, pokud nezadáte možnost /quiet . |
/Md | Provádí kontroly ověření metadat v sestavení určeném názvem souboru. Tato možnost provede úplnou strukturu metadat v souboru a hlásí všechny zjištěné problémy s ověřením. |
/nologo | Potlačí zobrazení informací o verzi a autorských právech produktu. |
/nosymbols | V rozhraní .NET Framework verze 2.0 potlačí čísla řádků kvůli zpětné kompatibilitě. |
/quiet | Nastaví tichý režim; potlačí výstup hlášení problémů ověření. Nástroj Peverify.exe stále hlásí, zda je soubor typově bezpečný, ale již nehlásí informace o problémech, které brání v ověření bezpečnosti typu. |
/transparent |
Ověří pouze transparentní metody. |
/jedinečný | Ignoruje opakující se kódy chyb. |
/verbose | V rozhraní .NET Framework verze 2.0 se zobrazí další informace v ověřovacích zprávách jazyka MSIL. |
/? | Zobrazí syntaxi příkazu a možnosti nástroje. |
Poznámky
Modul Common Language Runtime se opírá o typově bezpečné spuštění kódu aplikace k podpoře vynucení bezpečnostních a izolačních mechanismů. Kód, který není ověřitelně typ bezpečný , nelze spustit, ačkoli můžete nastavit zásady zabezpečení tak, aby umožňovaly spuštění důvěryhodného, ale neověřitelného kódu.
Pokud nejsou zadány možnosti /md ani /il, Peverify.exe provede oba typy kontrol. Peverify.exe nejprve provede kontroly /md . Pokud nedojde k žádným chybám, provede se kontrola /il . Pokud zadáte parametr /md i /il, provede se kontrola /il i v případě, že metadata obsahuje chyby. Pokud tedy neexistují žádné chyby metadat, je název souboru peverify ekvivalentní souboru peverify název souboru /md /il.
Nástroj Peverify.exe provádí komplexní kontroly MSIL u platných metadat na základě analýzy datového toku a seznamu několika stovek pravidel. Podrobné informace o kontrolách, Peverify.exe provést, naleznete v části Specifikace ověření metadat a MSIL Instrukční sada specifikace ve složce Tools Developers Guide v sadě Windows SDK.
Rozhraní .NET Framework verze 2.0 nebo novější podporuje ověřitelné byref
návraty zadané pomocí následujících pokynů jazyka MSIL: dup
, , ldsflda
ldflda
, ldelema
, call
a unbox
.
Příklady
Následující příkaz provádí kontroly ověření metadat a kontroly ověřování typu MSIL pro metody implementované v sestavení myAssembly.exe
.
peverify myAssembly.exe /md /il
Po úspěšném dokončení výše uvedeného požadavku nástroj Peverify.exe zobrazí následující zprávu.
All classes and methods in myAssembly.exe Verified
Následující příkaz provádí kontroly ověření metadat a kontroly ověřování typu MSIL pro metody implementované v sestavení myAssembly.exe
. Nástroj zobrazí čas potřebný k provedení těchto kontrol.
peverify myAssembly.exe /md /il /clock
Po úspěšném dokončení výše uvedeného požadavku nástroj Peverify.exe zobrazí následující zprávu.
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
Následující příkaz provádí kontroly ověření metadat a kontroly ověřování typu MSIL pro metody implementované v sestavení myAssembly.exe
. Nástroj Peverify.exe se však zastaví, jakmile dosáhne maximálního počtu 100 chyb. Tento nástroj rovněž ignoruje zadané kódy chyb.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
Následující příkaz vytvoří stejný výsledek jako předchozí příklad, ale určuje kódy chyb, které se mají v souboru ignoreErrors.rsp
odpovědi ignorovat .
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Soubor odpovědí může obsahovat seznam kódů chyb oddělených čárkami.
0x12345678, 0xABCD1234
Soubor odpovědí lze také naformátovat s jedním kódem chyby na řádek.
0x12345678
0xABCD1234