/DEPENDENTLOADFLAG (Définir les indicateurs de charge dépendants par défaut)

L’option /DEPENDENTLOADFLAG nécessite Visual Studio 2017 ou version ultérieure.

Définit les indicateurs de charge par défaut utilisés lorsque le système d’exploitation résout les importations liées statiquement d’un module.

Syntaxe

/DEPENDENTLOADFLAG[ :load_flags]

Arguments

load_flags
Valeur entière facultative qui spécifie les indicateurs de chargement à appliquer lors de la résolution des dépendances d’importation liées statiquement du module. La valeur par défaut est 0. Pour obtenir la liste des valeurs d’indicateur prises en charge, consultez les LOAD_LIBRARY_SEARCH_* entrées dans LoadLibraryEx.

Notes

Lorsque le système d’exploitation résout les importations liées statiquement d’un module, il utilise l’ordre de recherche par défaut. Utilisez l’option /DEPENDENTLOADFLAG pour spécifier une valeur load_flags qui modifie le chemin de recherche utilisé pour résoudre ces importations. Sur les systèmes d’exploitation pris en charge, il modifie l’ordre de recherche de résolution d’importation statique, similaire à ce que fait LoadLibraryEx lors de l’utilisation de LOAD_LIBRARY_SEARCH paramètres. Pour plus d’informations sur l’ordre de recherche défini par load_flags, consultez l’ordre de recherche à l’aide de LOAD_LIBRARY_SEARCH indicateurs.

Cet indicateur peut être utilisé pour rendre un vecteur d’attaque de plantation de DLL plus difficile. Par exemple, considérez une application qui a lié statiquement une DLL :

  • Un attaquant peut planter une DLL portant le même nom précédemment dans le chemin de recherche de résolution d’importation, tel que le répertoire de l’application. Les répertoires protégés sont plus difficiles, mais pas impossibles, pour qu’un attaquant change.

  • Si la DLL est manquante dans l’application, %windows%\system32 et %windows% répertoires, la résolution d’importation passe au répertoire actif. Un attaquant peut y planter une DLL.

Dans les deux cas, si vous spécifiez l’option /DEPENDENTLOADFLAG:0x800 de lien (la valeur de l’indicateur LOAD_LIBRARY_SEARCH_SYSTEM32), le chemin de recherche du module est limité au répertoire %windows%\system32. Il offre une certaine protection contre les attaques de plantation sur les autres répertoires. Pour plus d’informations, consultez La sécurité de la bibliothèque de liens dynamiques.

Pour afficher la valeur définie par l’option /DEPENDENTLOADFLAG dans n’importe quelle DLL, utilisez la commande DUMPBIN avec l’option /LOADCONFIG.

L’option /DEPENDENTLOADFLAG est nouvelle dans Visual Studio 2017. Elle s’applique uniquement aux applications s’exécutant sur Windows 10 RS1 et les versions ultérieures de Windows. Cette option est ignorée par d’autres systèmes d’exploitation qui exécutent l’application.

Pour définir l’option de l’éditeur de liens DEPENDENTLOADFLAG dans l’environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

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

  3. Entrez l’option dans Options supplémentaires.

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

Voir aussi