Peverify.exe (alat PEVerify)
Alat PEVerify membantu pengembang yang menghasilkan bahasa perantara Microsoft (MSIL) (seperti penulis compier dan pengembang mesin skrip) untuk menentukan apakah kode MSIL dan metadata terkait memenuhi persyaratan keamanan jenis. Beberapa kompiler menghasilkan kode jenis aman yang dapat diverifikasi hanya jika Anda menghindari penggunaan konstruksi bahasa tertentu. Jika Anda menggunakan kompiler seperti itu, Anda mungkin ingin memverifikasi bahwa Anda belum mengorbankan keamanan jenis kode Anda. Anda dapat menjalankan alat PEVerify pada file Anda untuk memeriksa MSIL dan metadata.
Alat ini otomatis terpasang dengan Visual Studio. Untuk menjalankan alat, gunakan Prompt Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio.
Sintaks
peverify filename [options]
Parameter
Argumen | Deskripsi |
---|---|
filename | File portable executable (PE) untuk memeriksa MSIL dan metadata. |
Opsi | Deskripsi |
---|---|
/break=maxErrorCount | Membatalkan verifikasi setelah kesalahan maxErrorCount. Parameter ini tidak didukung di .NET Framework 2.0 atau yang lebih baru. |
/clock | Mengukur dan melaporkan waktu verifikasi berikut dalam milidetik: MD Val. siklus Siklus validasi metadata MD Val. pure Validasi metadata murni IL Ver. siklus Siklus verifikasi bahasa perantara Microsoft (MSIL) IL Ver pure Verifikasi MSIL murni Waktu siklus MD Val. dan siklus IL Ver. termasuk waktu yang diperlukan untuk melakukan prosedur startup dan shutdown yang diperlukan. Waktu Md Val. murni dan IL Ver murni mencerminkan waktu yang diperlukan untuk melakukan validasi atau verifikasi saja. |
/help | Menampilkan sintaks perintah dan opsi untuk alat ini. |
/hresult | Menampilkan kode kesalahan dalam format heksadesimal. |
/ignore=hex.code [, hex.code] | Mengabaikan kode kesalahan yang ditentukan. |
/ignore=@responseFile | Mengabaikan kode kesalahan yang tercantum dalam file respons yang ditentukan. |
/il | Melakukan pemeriksaan verifikasi keamanan jenis MSIL untuk metode yang diterapkan dalam assembly yang ditentukan oleh nama file. Alat ini mengembalikan deskripsi terperinci untuk setiap masalah yang ditemukan kecuali Anda menentukan opsi /quiet. |
/md | Melakukan pemeriksaan validasi metadata pada assembly yang ditentukan oleh filename. Opsi ini memandu struktur metadata lengkap dalam file dan melaporkan semua masalah validasi yang dihadapi. |
/nologo | Menekan tampilan versi produk dan informasi hak cipta. |
/nosymbols | Di .NET Framework versi 2.0, menekan nomor baris untuk kompatibilitas mundur. |
/quiet | Menentukan mode senyap; menekan output laporan masalah verifikasi. Peverify.exe masih melaporkan apakah file tersebut berjenis aman, tetapi tidak melaporkan informasi tentang masalah yang mencegah verifikasi keamanan jenis. |
/transparent |
Verifikasi hanya metode transparan. |
/unique | Mengabaikan kode kesalahan berulang. |
/verbose | Di .NET Framework versi 2.0, menampilkan informasi tambahan dalam pesan verifikasi MSIL. |
/? | Menampilkan sintaks perintah dan opsi untuk alat ini. |
Keterangan
Runtime bahasa umum bergantung pada eksekusi kode aplikasi yang aman jenis untuk membantu menegakkan mekanisme keamanan dan isolasi. Biasanya, kode yang tidak dapat diverifikasi jenis aman tidak dapat berjalan, meskipun Anda dapat mengatur kebijakan keamanan untuk memungkinkan eksekusi kode tepercaya tetapi tidak dapat diverifikasi.
Jika opsi /md atau /il tidak ditentukan, Peverify.exe melakukan kedua jenis pemeriksaan. Peverify.exe melakukan pemeriksaan /md terlebih dahulu. Jika tidak ada kesalahan, pemeriksaan /il akan dilakukan. Jika Anda menentukan pemeriksaan /md dan /il, /il dilakukan meskipun ada kesalahan dalam metadata. Dengan demikian, jika tidak ada kesalahan metadata, siklus filename setara dengan peverifyfilename/md/il.
Peverify.exe melakukan pemeriksaan verifikasi MSIL yang komprehensif berdasarkan analisis aliran data ditambah daftar beberapa ratus aturan pada metadata yang valid. Untuk informasi terperinci tentang pemeriksaan yang Peverify.exe lakukan, lihat "Spesifikasi Validasi Metadata" dan "Spesifikasi Set Instruksi MSIL" di folder Panduan Pengembang Alat di Windows SDK.
NET Framework versi 2.0 atau yang lebih baru mendukung byref
pengembalian yang dapat diverifikasi yang ditentukan menggunakan instruksi MSIL berikut: dup
, , ldsflda
, ldflda
ldelema
, call
, dan unbox
.
Contoh
Perintah berikut melakukan pemeriksaan validasi metadata dan pemeriksaan verifikasi keamanan jenis MSIL untuk metode yang diterapkan dalam assemblymyAssembly.exe
.
peverify myAssembly.exe /md /il
Setelah berhasil menyelesaikan permintaan di atas, Peverify.exe menampilkan pesan berikut.
All classes and methods in myAssembly.exe Verified
Perintah berikut melakukan pemeriksaan validasi metadata dan pemeriksaan verifikasi keamanan jenis MSIL untuk metode yang diterapkan dalam assemblymyAssembly.exe
. Alat ini menampilkan waktu yang diperlukan untuk melakukan pemeriksaan ini.
peverify myAssembly.exe /md /il /clock
Setelah berhasil menyelesaikan permintaan di atas, Peverify.exe menampilkan pesan berikut.
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
Perintah berikut melakukan pemeriksaan validasi metadata dan pemeriksaan verifikasi keamanan jenis MSIL untuk metode yang diterapkan dalam assemblymyAssembly.exe
. Peverify.exe berhenti, namun, ketika mencapai jumlah kesalahan maksimum 100. Alat ini juga mengabaikan kode kesalahan yang ditentukan.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
Perintah berikut menghasilkan hasil yang sama seperti contoh sebelumnya di atas, tetapi menentukan kode kesalahan yang akan diabaikan dalam file respons ignoreErrors.rsp
.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
File respons dapat berisi daftar kode kesalahan yang dipisahkan koma.
0x12345678, 0xABCD1234
Atau, file respons dapat diformat dengan satu kode kesalahan per baris.
0x12345678
0xABCD1234
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk