Peverify.exe (PEVerify eszköz)
A PEVerify eszköz segít a Microsoft köztes nyelvét (MSIL) létrehozó fejlesztőknek (például fordítóíróknak és szkriptmotor-fejlesztőknek) annak megállapításában, hogy AZ MSIL-kódjuk és a kapcsolódó metaadatok megfelelnek-e a típusbiztonsági követelményeknek. Egyes fordítók csak akkor hoznak létre ellenőrizhetően típusbiztos kódot, ha nem használ bizonyos nyelvi szerkezeteket. Ha ilyen fordítót használ, érdemes lehet ellenőriznie, hogy nem veszélyeztette-e a kód típusát. A PEVerify eszközt a fájlokon futtatva ellenőrizheti az MSIL-t és a metaadatokat.
Ez az eszköz automatikusan telepítve van a Visual Studióval. Az eszköz futtatásához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.
Syntax
peverify filename [options]
Paraméterek
Argumentum | Leírás |
---|---|
fájlnév | A hordozható végrehajtható (PE) fájl, amelynek ellenőrzéséhez ellenőrizni kell az MSIL-t és a metaadatokat. |
Lehetőség | Leírás |
---|---|
/break= maxErrorCount | Megszakítja az ellenőrzést a maxErrorCount hibák után. Ez a paraméter nem támogatott .NET-keretrendszer 2.0-s vagy újabb verziójában. |
/óra | A következő ellenőrzési időpontokat méri és jelenti ezredmásodpercben: MD Val. ciklus Metaadatok érvényesítési ciklusa MD Val. tiszta Metaadatok ellenőrzése tiszta IL Ver. ciklus Microsoft köztes nyelv (MSIL) ellenőrzési ciklusa IL Ver pure MSIL-ellenőrzés tiszta Az MD Val. ciklus és az IL Ver. ciklusidők tartalmazzák a szükséges indítási és leállítási eljárások végrehajtásához szükséges időt. Az MD Val. tiszta és az IL Ver tiszta ideje csak az ellenőrzés vagy ellenőrzés elvégzéséhez szükséges időt tükrözi. |
/segítség | Megjeleníti az eszköz parancsszintaxisát és beállításait. |
/hresult | Hexadecimális formátumban jeleníti meg a hibakódokat. |
/ignore= hex.code [, hex.code] | Figyelmen kívül hagyja a megadott hibakódokat. |
/ignore=@ responseFile | Figyelmen kívül hagyja a megadott válaszfájlban felsorolt hibakódokat. |
/Il | MSIL típusú biztonsági ellenőrzést végez a fájlnév által megadott szerelvényben implementált metódusok esetében. Az eszköz az egyes talált problémák részletes leírását adja vissza, kivéve, ha megadja a /quiet beállítást. |
/Md | Metaadat-érvényesítési ellenőrzéseket végez a fájlnév által megadott szerelvényen. Ez a beállítás végigvezeti a teljes metaadat-struktúrát a fájlon belül, és bemutatja az összes felmerülő érvényesítési problémát. |
/nologo | Letiltja a termékverzió és a szerzői jogi információk megjelenítését. |
/nosymbols | A .NET-keretrendszer 2.0-s verziójában letiltja a vonalszámokat a visszamenőleges kompatibilitás érdekében. |
/halk | Csendes módot ad meg; letiltja az ellenőrzési problémajelentések kimenetét. Peverify.exe továbbra is jelentést készít arról, hogy a fájl biztonságos-e, de nem jelent információt a típusbiztonsági ellenőrzést megakadályozó problémákról. |
/transparent |
Csak az transzparens metódusokat ellenőrizze. |
/egyedülálló | Figyelmen kívül hagyja az ismétlődő hibakódokat. |
/bőbeszédű | A .NET-keretrendszer 2.0-s verziójában további információkat jelenít meg az MSIL ellenőrző üzeneteiben. |
/? | Megjeleníti az eszköz parancsszintaxisát és beállításait. |
Megjegyzések
A közös nyelvi futtatókörnyezet az alkalmazáskód típusbiztos végrehajtására támaszkodik a biztonsági és elkülönítési mechanizmusok kényszerítése érdekében. A nem ellenőrizhetően biztonságos kódot általában nem lehet futtatni, bár beállíthatja a biztonsági szabályzatot, hogy lehetővé tegye a megbízható, de nem ellenőrizhető kód végrehajtását.
Ha sem az /md, sem a /il beállítás nincs megadva, Peverify.exe mindkét típusú ellenőrzést végrehajtja. Peverify.exe először /md ellenőrzéseket hajt végre. Ha nincsenek hibák, a /il ellenőrzés történik. Ha az /md és a /il értéket is megadja, a /il ellenőrzések akkor is történnek, ha a metaadatokban hibák lépnek fel. Így ha nincsenek metaadat-hibák, a peverify fájlnév egyenértékű a peverify fájlnév /md /il azonosítóval.
Peverify.exe átfogó MSIL-ellenőrzési ellenőrzéseket végez adatfolyam-elemzés alapján, valamint több száz érvényes metaadat-szabályt tartalmazó listát. A Peverify.exe elvégzett ellenőrzésekről a Windows SDK Eszközfejlesztői útmutató mappájában található "Metadata Validation Specification" (Metaadat-érvényesítési specifikáció) és az "MSIL utasításkészlet specifikációja" című témakörben talál részletes információt.
.NET-keretrendszer 2.0-s vagy újabb verziója a következő MSIL-utasítások alapján megadott ellenőrizhető byref
visszatéréseket támogatja: dup
, ldsflda
, ldflda
, ldelema
, call
és unbox
.
Példák
Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exe
implementált módszereket ellenőrzi.
peverify myAssembly.exe /md /il
A fenti kérés sikeres végrehajtása után Peverify.exe a következő üzenetet jeleníti meg.
All classes and methods in myAssembly.exe Verified
Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exe
implementált módszereket ellenőrzi. Az eszköz megjeleníti az ellenőrzések végrehajtásához szükséges időt.
peverify myAssembly.exe /md /il /clock
A fenti kérés sikeres végrehajtása után Peverify.exe a következő üzenetet jeleníti meg.
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
Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exe
implementált módszereket ellenőrzi. Peverify.exe azonban leáll, amikor eléri a 100-ra vonatkozó maximális hibaszámot. Az eszköz figyelmen kívül hagyja a megadott hibakódokat is.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
A következő parancs ugyanazt az eredményt hozza létre, mint a fenti példa, de megadja a válaszfájlban ignoreErrors.rsp
figyelmen kívül hagyandó hibakódokat.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
A válaszfájl tartalmazhat a hibakódok vesszővel tagolt listáját.
0x12345678, 0xABCD1234
Másik lehetőségként a válaszfájl soronként egy hibakóddal formázható.
0x12345678
0xABCD1234