Herramienta PEVerify (Peverify.exe)
Actualización: noviembre 2007
Esta herramienta ayuda a los programadores que generan lenguaje intermedio de Microsoft (MSIL) (como autores de compiladores, programadores de motores de secuencias de comandos, etc.) a determinar si el código MSIL y los metadatos asociados satisfacen los requisitos de seguridad de tipos. Algunos compiladores sólo generan código con seguridad de tipos comprobable si se evita la utilización de determinadas construcciones de lenguaje. Si, como programador, está utilizando un compilador con estas características, puede asegurarse de que no ha puesto en peligro la seguridad de tipos del código. Para ello, ejecute la herramienta PEVerify en los archivos con el fin de comprobar el lenguaje MSIL y los metadatos.
peverify filename [options]
Parámetros
Argumento |
Descripción |
---|---|
filename |
Archivo ejecutable portable (PE) para el que se comprueban el lenguaje MSIL y los metadatos. |
Opción |
Descripción |
---|---|
/break=maxErrorCount |
Anula la comprobación si se generan tantos errores como indica maxErrorCount. Este parámetro no es compatible con .NET Framework versión 2.0 o posterior. |
/clock |
Mide e informa de los siguientes tiempos de comprobación en milisegundos:
Los tiempos MD Val. cycle e IL Ver. cycle incluyen el tiempo requerido para realizar los procedimientos necesarios de inicio y cierre. Los tiempos MD Val. pure e IL Ver pure reflejan el tiempo requerido únicamente para realizar la validación o comprobación. |
/help |
Muestra la sintaxis de comandos y opciones para la herramienta. |
/hresult |
Muestra los códigos de error en formato hexadecimal. |
/ignore=hex.code [, hex.code] |
No tiene en cuenta los códigos de error especificados. |
/ignore=@responseFile |
No tiene en cuenta los códigos de error enumerados en el archivo de respuesta especificado. |
/il |
Realiza comprobaciones de la seguridad de tipos de MSIL en los métodos implementados en el ensamblado especificado por el argumento filename. La herramienta devuelve descripciones detalladas de cada uno de los problemas encontrados, salvo que se especifique la opción /quiet. |
/md |
Realiza comprobaciones de validación de metadatos en el ensamblado especificado por el argumento filename. Para ello recorre la estructura completa de metadatos en el archivo y genera un informe de todos los problemas de validación producidos. |
/nologo |
Suprime la presentación de la versión del producto y la información de copyright. |
/nosymbols |
En .NET Framework versión 2.0, se suprimen los números de línea para compatibilidad con versiones anteriores. |
/quiet |
Especifica el modo no interactivo; suprime la salida de los informes relativos a problemas de comprobación. No obstante, Peverify.exe notifica si el archivo tiene seguridad de tipos, pero no proporciona información de los problemas que impiden la comprobación de la seguridad de tipos. |
/unique |
No tiene en cuenta la repetición de códigos de error. |
/verbose |
En .NET Framework versión 2.0, se muestra información adicional en los mensajes de verificación de MSIL. |
/? |
Muestra la sintaxis de comandos y opciones para la herramienta. |
Comentarios
Common Language Runtime se basa en la ejecución con seguridad de tipos del código de la aplicación para ayudar a imponer mecanismos de aislamiento y seguridad. Normalmente, el código que no tiene seguridad de tipos comprobable no se puede ejecutar, aunque se puede establecer la directiva de seguridad para permitir la ejecución de código de confianza pero no comprobable.
Si no se especifica ninguna de las opciones /md y /il, Peverify.exe realiza ambos tipos de comprobaciones. Primero realiza comprobaciones de tipo /md. Si no se producen errores, realiza comprobaciones de tipo /il. Si especifica ambas opciones, /md y /il, se realizarán las comprobaciones de tipo /il aunque existan errores en los metadatos. Así, si no hay ningún error de metadatos, peverify filenamees equivalente a peverify filename /md /il.
Peverify.exe realiza comprobaciones exhaustivas de MSIL basándose en el análisis del flujo de datos y en una lista que contiene centenares de reglas sobre metadatos válidos. Para obtener información detallada sobre las comprobaciones que realiza Peverify.exe, vea "Metadata Validation Specification" y "MSIL Instruction Set Specification" en la carpeta Tools Developer Guide de Kit de desarrollo de software de Windows (SDK).
Observe que .NET Framework versión 2.0 o posterior admite devoluciones de los datos byref verificables especificados mediante las siguientes instrucciones de MSIL: dup, ldsflda, ldflda, ldelema, call y unbox.
Ejemplos
El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe.
peverify myAssembly.exe /md /il
Tras la ejecución correcta de la solicitud anterior, Peverify.exe muestra el mensaje siguiente.
All classes and methods in myAssembly.exe Verified
El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe. La herramienta muestra el tiempo necesario para ejecutar estas comprobaciones.
peverify myAssembly.exe /md /il /clock
Tras la ejecución correcta de la solicitud anterior, Peverify.exe muestra el mensaje siguiente.
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
El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe. Sin embargo, Peverify.exe se detiene si detecta el número máximo de errores, que es 100. Asimismo, omite los códigos de error especificados.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
El comando siguiente produce el mismo resultado que el ejemplo anterior, pero especifica los códigos de error que se omiten en el archivo de respuesta ignoreErrors.rsp.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
El archivo de respuesta puede contener una lista de códigos de error separados por comas.
0x12345678, 0xABCD1234
De modo alternativo, el archivo de respuesta puede tener un formato que incluya un código de error por línea.
0x12345678
0xABCD1234
Vea también
Conceptos
Escribir código seguro comprobable
Seguridad y protección de tipos