Peverify.exe (PEVerify aracı)
PEVerify aracı, Microsoft ara dili (MSIL) (derleyici yazıcıları ve betik altyapısı geliştiricileri gibi) oluşturan geliştiricilerin MSIL kodlarının ve ilişkili meta verilerinin tür güvenliği gereksinimlerini karşılayıp karşılamadığını belirlemesine yardımcı olur. Bazı derleyiciler yalnızca belirli dil yapılarını kullanmaktan kaçındığınızda doğrulanabilir şekilde tür kullanımı uyumlu kod üretir. Böyle bir derleyici kullanıyorsanız kodunuzun tür güvenliğini tehlikeye atmadığınızı doğrulamak isteyebilirsiniz. MSIL ve meta verileri denetlemek için dosyalarınızda PEVerify aracını çalıştırabilirsiniz.
Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın.
Sözdizimi
peverify filename [options]
Parametreler
Bağımsız değişken | Açıklama |
---|---|
filename | MSIL ve meta verilerinin denetleneceği taşınabilir yürütülebilir (PE) dosyası. |
Seçenek | Açıklama |
---|---|
/break= maxErrorCount | maxErrorCount hatalarından sonra doğrulamayı durdurur. Bu parametre .NET Framework sürüm 2.0 ve sonrasında desteklenmez. |
/saat | Milisaniye olarak aşağıdaki doğrulama zamanlarını ölçer ve bildirir: MD Val. çevrim Meta veri doğrulama döngüsü MD Val. saf Meta veri doğrulama safı IL Ver. çevrim Microsoft ara dili (MSIL) doğrulama döngüsü IL Ver pure MSIL doğrulaması saf MD Val. döngüsü ve IL Ver. döngüsü süreleri, gerekli başlatma ve kapatma yordamlarını gerçekleştirmek için gereken süreyi içerir. MD Val. pure ve IL Ver saf süreleri yalnızca doğrulama veya doğrulama gerçekleştirmek için gereken süreyi yansıtır. |
/Yardım | Araç için komut sözdizimini ve seçenekleri görüntüler. |
/hresult | Onaltılık biçimde hata kodlarını görüntüler. |
/ignore= hex.code [, hex.code] | Belirtilen hata kodlarını dikkate almaz. |
/ignore=@ responseFile | Belirtilen yanıt dosyasında listelenen hata kodlarını dikkate almaz. |
/ıl | Dosya adı tarafından belirtilen derlemede uygulanan yöntemler için MSIL türü güvenlik doğrulama denetimleri gerçekleştirir. Araç, /quiet seçeneğini belirtmediğiniz sürece bulunan her sorun için ayrıntılı açıklamalar döndürür. |
/md | Dosya adı tarafından belirtilen derlemede meta veri doğrulama denetimleri gerçekleştirir. Bu seçenek, dosya içindeki tam meta veri yapısını gösterir ve karşılaşılan tüm doğrulama sorunlarını bildirir. |
/nologo | Ürün sürümü ve telif hakkı bilgilerinin görüntülenmesini önler. |
/nosymbols | .NET Framework sürüm 2.0'da geriye dönük uyumluluk için satır numaralarını gizler. |
/quiet | Sessiz mod kullanılacağını belirtir; doğrulama sorunu raporlarının çıkışını önler. Peverify.exe dosyanın tür kullanımı uyumlu olup olmadığını bildirmeye devam eder, ancak tür güvenliği doğrulamasını önleyen sorunlar hakkında bilgi vermez. |
/transparent |
Yalnızca saydam yöntemleri doğrulayın. |
/eşsiz | Yinelenen hata kodlarını dikkate almaz. |
/verbose | .NET Framework sürüm 2.0'da MSIL doğrulama iletilerinde ek bilgiler görüntülenir. |
/? | Araç için komut sözdizimini ve seçenekleri görüntüler. |
Açıklamalar
Ortak dil çalışma zamanı, güvenlik ve yalıtım mekanizmalarını zorlamaya yardımcı olmak için uygulama kodunun tür kullanımı uyumlu yürütülmesini kullanır. Normalde, güvenilir türde güvenli olmayan kod çalıştırılamaz, ancak güvenlik ilkesini güvenilir ancak doğrulanamayan kodun yürütülmesine izin verecek şekilde ayarlayabilirsiniz.
/md veya /il seçenekleri belirtilmezse, Peverify.exe her iki denetim türünü de gerçekleştirir. Peverify.exe önce /md denetimleri gerçekleştirir. Hata yoksa / il denetimleri yapılır. Hem /md hem de /il belirtirseniz, meta verilerde hatalar olsa bile /il denetimleri yapılır. Bu nedenle, meta veri hatası yoksa, peverify dosya adı /md /il dosya adını peverify ile eşdeğerdir.
Peverify.exe, veri akışı analizine ve geçerli meta veriye ilişkin birkaç yüz kuralı içeren bir listeye göre kapsamlı MSIL doğrulama denetimleri yapar. Peverify.exe gerçekleştirdiği denetimler hakkında ayrıntılı bilgi için Windows SDK'sının Araçlar Geliştirici Kılavuzu klasöründeki "Meta Veri Doğrulama Belirtimi" ve "MSIL Yönerge Kümesi Belirtimi" bölümüne bakın.
.NET Framework sürüm 2.0 veya üzeri, aşağıdaki MSIL yönergeleri kullanılarak belirtilen doğrulanabilir byref
dönüşleri destekler: dup
, ldsflda
, ldflda
, ldelema
, call
, ve unbox
.
Örnekler
Aşağıdaki komut, derlemesinde myAssembly.exe
uygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir.
peverify myAssembly.exe /md /il
Yukarıdaki isteğin başarıyla tamamlanmasından sonra Peverify.exe aşağıdaki iletiyi görüntüler.
All classes and methods in myAssembly.exe Verified
Aşağıdaki komut, derlemesinde myAssembly.exe
uygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir. Araç bu denetimleri gerçekleştirmek için gereken süreyi görüntüler.
peverify myAssembly.exe /md /il /clock
Yukarıdaki isteğin başarıyla tamamlanmasından sonra Peverify.exe aşağıdaki iletiyi görüntüler.
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
Aşağıdaki komut, derlemesinde myAssembly.exe
uygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir. Ancak en fazla hata sayısı olan 100'e ulaştığında Peverify.exe durur. Araç belirtilen hata kodlarını dikkate almaz.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
Aşağıdaki komut yukarıdaki örnekle aynı sonucu verir, ancak yanıt dosyasında ignoreErrors.rsp
yoksaymak için hata kodlarını belirtir.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Yanıt dosyası hata kodlarının virgülle ayrılmış listesini içerebilir.
0x12345678, 0xABCD1234
Alternatif olarak, yanıt dosyası her satırda bir hata kodu olacak şekilde de biçimlendirilebilir.
0x12345678
0xABCD1234