Share via


/DEPENDENTLOADFLAG (Establecer marcas de carga dependientes predeterminadas)

La opción /DEPENDENTLOADFLAG requiere Visual Studio 2017 o una versión posterior.

Establece las marcas de carga predeterminadas que se usan cuando el sistema operativo resuelve las importaciones vinculadas estáticamente de un módulo.

Sintaxis

/DEPENDENTLOADFLAG[:load_flags]

Argumentos

load_flags
Un valor entero opcional que especifica las marcas de carga que se aplicarán cuando se resuelvan las dependencias de importación vinculadas estáticamente del módulo. El valor predeterminado es 0. Para obtener una lista de los valores de marca admitidos, consulte las entradas LOAD_LIBRARY_SEARCH_* en LoadLibraryEx.

Comentarios

Cuando el sistema operativo resuelve las importaciones vinculadas estáticamente de un módulo, usa el orden de búsqueda predeterminado. Use la opción /DEPENDENTLOADFLAG para especificar un valor load_flags que cambie la ruta de acceso de búsqueda utilizada para resolver estas importaciones. En los sistemas operativos compatibles, cambia el orden de búsqueda de la resolución de importación estática, igual que hace LoadLibraryEx cuando usa los parámetros LOAD_LIBRARY_SEARCH. Para más información sobre el orden de búsqueda establecido por load_flags, consulte Orden de búsqueda mediante las marcas de LOAD_LIBRARY_SEARCH.

Esta marca se puede usar para dificultar a un vector de ataque de plantación de DLL. Por ejemplo, considere una aplicación que haya vinculado estáticamente un archivo DLL:

  • Un atacante podría plantar un archivo DLL con el mismo nombre antes en la ruta de búsqueda de resolución de importación, como el directorio de la aplicación. Los directorios protegidos son más difíciles, pero no imposibles de cambiar por un atacante.

  • Si falta el archivo DLL en los directorios de la aplicación, %windows%\system32 y %windows% directorios, la resolución de la importación pasa al directorio actual. Un atacante podría poner un archivo DLL allí.

En ambos casos, si especifica la opción del vínculo /DEPENDENTLOADFLAG:0x800 (el valor de la marca LOAD_LIBRARY_SEARCH_SYSTEM32), la ruta de acceso de búsqueda del módulo se limita al directorio %windows%\system32. Esto brinda un poco protección contra los ataques de plantación en los otros directorios. Para más información, vea Seguridad de la biblioteca de vínculos dinámicos.

Para ver el valor establecido por la opción /DEPENDENTLOADFLAG en cualquier DLL, use el comando DUMPBIN con la opción /LOADCONFIG.

La opción /DEPENDENTLOADFLAG es nueva en Visual Studio 2017. Solo se puede usar en las aplicaciones que se ejecutan en Windows 10 RS1 y en versiones posteriores de Windows. Los otros sistemas operativos que ejecutan la aplicación omiten esta opción.

Para establecer la opción del enlazador DEPENDENTLOADFLAG en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>Enlazador>Línea de comandos.

  3. Escriba la opción en Opciones adicionales.

Para establecer esta opción del vinculador mediante programación

Consulte también