/GUARD (Activer les vérifications guard)

Indique à l’éditeur de liens s’il faut prendre en charge les case activée Control Flow Guard dans l’image exécutable.

Syntaxe

/GUARD:CF
/GUARD:NO

Notes

L’option /GUARD:CF éditeur de liens modifie l’en-tête d’un fichier DLL ou EXE pour indiquer la prise en charge du runtime Control Flow Guard (CFG) case activée s. L'éditeur de liens ajoute également les données d'adresse cible du flux de contrôle nécessaire dans l'en-tête. Par défaut, /GUARD:CF est désactivé. Elle peut être explicitement désactivée à l’aide /GUARD:NOde . Pour être efficace, /GUARD:CF nécessite également l’option (Utiliser la randomisation de disposition de l’espace /DYNAMICBASE d’adressage), qui est activée par défaut.

Lorsque le code source est compilé à l’aide de l’option du /guard:cf compilateur, le compilateur analyse le flux de contrôle en examinant tous les appels indirects pour les adresses cibles possibles. Le compilateur insère le code pour vérifier que l'adresse cible d'une instruction d'appel indirect figure dans la liste des adresses cibles connues au moment de l'exécution. Les systèmes d'exploitation qui prennent en charge la protection CFG arrêtent tout programme qui ne satisfait pas une vérification à l'exécution CFG. Cette case activée rend plus difficile pour un attaquant d’exécuter du code malveillant à l’aide de la corruption des données pour modifier une cible d’appel.

L’option /GUARD:CF doit être spécifiée à la fois au compilateur et à l’éditeur de liens pour créer des images exécutables compatibles CFG. Le code compilé mais non lié à l’aide /GUARD:CF entraîne le coût des case activée d’exécution, mais n’active pas la protection CFG. Lorsque l’option /guard:cf est spécifiée à la cl commande pour compiler et lier en une seule étape, le compilateur transmet l’indicateur à l’éditeur de liens. Lorsque la propriété Control Flow Guard est définie dans Visual Studio, l’option /GUARD:CF est transmise au compilateur et à l’éditeur de liens. Lorsque des fichiers ou bibliothèques d’objets ont été compilés séparément, l’option doit être spécifiée explicitement dans la link commande.

Pour définir cette option d'éditeur de liens dans Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriétés du projet. Pour plus d’informations, consultez Définir les propriétés du compilateur et de la génération.

  2. Sélectionnez la page de Propriétés de configuration>Éditeur de liens>Ligne de commande.

  3. Dans Options supplémentaires, entrez /GUARD:CF. Choisissez OK ou Appliquer pour enregistrer vos modifications.

Pour définir cette option de l'éditeur de liens par programmation

Voir aussi

/guard (Activer Control Flow Guard)
Informations de référence sur l’éditeur de liens MSVC
Options de l’éditeur de liens MSVC