Partager via


Peverify.exe (outil PEVerify)

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 spécifications 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.

Cet outil est installé automatiquement avec Visual Studio et avec le Kit de développement logiciel Windows. Pour exécuter l'outil, nous vous recommandons d'utiliser l'invite de commandes Visual Studio ou l'invite de commandes du Kit de développement logiciel (l'interpréteur de commandes CMD). Ces utilitaires vous permettent d'exécuter l'outil facilement, sans naviguer jusqu'au dossier d'installation. Pour plus d'informations, consultez Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows.

  • Si Visual Studio est installé sur votre ordinateur : dans la barre des tâches, cliquez sur le bouton Start, All Programs, Visual Studio, sur Visual Studio Tools, puis sur Visual Studio Command Prompt.

    ou

    Si vous avez le Kit de développement logiciel Windows installé sur votre ordinateur : Dans la barre des tâches, cliquez sur Start, All Programs, le dossier correspondant au Kit de développement logiciel, puis sur Command Prompt (ou CMD Shell).

  • À l'invite de commandes, tapez ce qui suit :

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.

/transparent

Vérifiez uniquement les méthodes transparentes.

/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, peverify filename équivaut alors à peverify filename /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. Toutefois, Peverify.exe s'arrête lorsqu'il atteint le nombre d'erreurs maximal de 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

Référence

Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows

Concepts

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

Sécurité de type et sécurité

Autres ressources

Outils du .NET Framework

Historique des modifications

Date

Historique

Motif

Avril 2011

Informations supplémentaires sur l'utilisation des invites de commandes de Visual Studio et du Kit de développement logiciel (SDK) Windows.

Améliorations apportées aux informations.