Outil PEVerify Tool (Peverify.exe)

Mise à jour : novembre 2007

L'outil PEVerify Tool permet aux writers de compilateur, de moteurs de script, etc. générant du langage MSIL (Microsoft Intermediate Language) de déterminer si leur code MSIL et les métadonnées qui y sont associées répondent aux exigences de sécurité de type. Certains compilateurs génèrent du code de type sécurisé vérifié uniquement si vous évitez d'utiliser certaines constructions de langage. Si, en tant que développeur, vous utilisez ce type de compilateur, vous pouvez souhaiter vérifier que vous n'avez pas compromis la sécurité de type de votre code. Vous pouvez dans ce cas exécuter l'outil PEVerify Tool sur vos fichiers pour vérifier le langage MSIL et les métadonnées.

peverify filename [options]

Paramètres

Argument

Description

filename

Fichier exécutable portable dont le langage MSIL et les métadonnées sont à vérifier.

Option

Description

/break=maxErrorCount

Abandonne la vérification à la suite d'erreurs maxErrorCount.

Ce paramètre n'est pas pris en charge dans les versions 2.0 et ultérieures du .NET Framework.

/clock

Calcule et indique la durée des vérifications suivantes, en millisecondes :

MD Val. cycle

Cycle de validation des métadonnées

MD Val. pure

Validation simple des métadonnées

IL Ver. cycle

Cycle de vérification MSIL

IL Ver pure

Vérification MSIL simple

Les temps MD Val. cycle et IL Ver. cycle incluent le temps requis pour effectuer les procédures de démarrage et d'arrêt nécessaires. Les temps MD Val. pure et IL Ver pure reflètent le temps requis pour effectuer la validation ou la vérification uniquement.

/help

Affiche la syntaxe et les options de commande de l'outil.

/hresult

Affiche les codes d'erreur au format hexadécimal.

/ignore=hex.code [, hex.code]

Ignore les codes d'erreur spécifiés.

/ignore=@responseFile

Ignore les codes d'erreur répertoriés dans le fichier réponse spécifié.

/il

Procède aux contrôles de vérification de la sécurité de type MSIL pour les méthodes implémentées dans l'assembly spécifié par filename. L'outil retourne les descriptions détaillées de chaque problème rencontré, sauf si vous spécifiez l'option /quiet.

/md

Procède aux contrôles de validation des métadonnées sur l'assembly spécifié par filename. Parcourt l'intégralité de la structure des métadonnées figurant dans le fichier et fait état de tous les problèmes de validation rencontrés.

/nologo

Supprime l'affichage de version de produit et d'informations de copyright.

/nosymbols

Dans le .NET Framework version 2.0, il supprime les numéros de ligne pour la compatibilité descendante.

/quiet

Spécifie le mode silencieux ; supprime la sortie des états sur les problèmes de vérification. Peverify.exe continue à indiquer si le fichier est de type sécurisé, mais ne fait pas état d'informations sur les problèmes empêchant la vérification de la sécurité de type.

/unique

Ignore les codes d'erreur récurrents.

/verbose

Dans le .NET Framework version 2.0, il affiche des informations supplémentaires dans les messages de vérification MSIL.

/?

Affiche la syntaxe et les options de commande de l'outil.

Notes

Le Common Language Runtime repose sur l'exécution de type sécurisé du code de l'application pour permettre de mettre en œuvre des mécanismes de sécurité et d'isolation. Le code qui n'est pas de type sécurisé vérifié ne peut normalement pas être exécuté, même si vous pouvez définir une stratégie de sécurité permettant l'exécution d'un code de confiance, mais non vérifiable.

Si les options /md et /il ne sont pas spécifiées, Peverify.exe effectue alors ces deux types de contrôles. Peverify.exe procède en premier lieu aux contrôles /md. En l'absence d'erreurs, il effectue ensuite les contrôles /il. Si vous spécifiez à la fois les contrôles /md et /il, les contrôles /il sont effectués, y compris en cas d'erreurs dans les métadonnées. En l'absence d'erreurs dans les métadonnées, peverifyfilename équivaut alors à peverifyfilename**/md/il**.

Peverify.exe effectue des contrôles de vérification MSIL complets en fonction de l'analyse des flux de données et d'une liste de plusieurs centaines de règles sur la validité des métadonnées. Pour plus d'informations sur les contrôles effectués par Peverify.exe, consultez « Metadata Validation Specification » et « MSIL Instruction Set Specification » dans le dossier « Tool Developer's Guide » du Kit de développement logiciel (SDK) Windows.

Notez que le .NET Framework version 2.0 ou ultérieure prend en charge les valeurs de retour byref vérifiables spécifiées à l'aide des instructions MSIL suivantes : dup, ldsflda, ldflda, ldelema, call et unbox.

Exemples

La commande suivante procède aux contrôles de validation des métadonnées et aux contrôles de vérification de la sécurité de type MSIL pour les méthodes implémentées dans l'assembly myAssembly.exe.

peverify myAssembly.exe /md /il

Une fois les contrôles ci‑dessus terminés, Peverify.exe affiche le message suivant.

All classes and methods in myAssembly.exe Verified

La commande suivante procède aux contrôles de validation des métadonnées et aux contrôles de vérification de la sécurité de type MSIL pour les méthodes implémentées dans l'assembly myAssembly.exe. L'outil affiche le temps requis pour effectuer ces vérifications.

peverify myAssembly.exe /md /il /clock

Une fois les contrôles ci‑dessus terminés, Peverify.exe affiche le message suivant.

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

La commande suivante procède aux contrôles de validation des métadonnées et aux contrôles de vérification de la sécurité de type MSIL pour les méthodes implémentées dans l'assembly myAssembly.exe. Peverify.exe s'arrête toutefois lorsqu'il atteint le nombre d'erreurs maximal (100). L'outil ignore également les codes d'erreur spécifiés.

peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234

La commande suivante aboutit au même résultat que dans l'exemple précédent, mais elle spécifie les codes d'erreur à ignorer dans le fichier réponse ignoreErrors.rsp.

peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp

Le fichier réponse peut comporter une liste de codes d'erreur avec la virgule comme séparateur.

0x12345678, 0xABCD1234

Le fichier réponse peut également être mis en forme avec un code d'erreur par ligne.

0x12345678
0xABCD1234

Voir aussi

Concepts

Écriture de code de type sécurisé vérifié

Sécurité de type et sécurité

Référence

Outils du .NET Framework

Invite de commandes du Kit de développement SDK