Поделиться через


/DEPENDENTLOADFLAG (установка флагов зависимой загрузки по умолчанию)

Для параметра /DEPENDENTLOADFLAG требуется Visual Studio 2017 или более поздней версии.

Задает флаги загрузки по умолчанию, используемые при разрешении статически связанных импортов модуля.

Синтаксис

/DEPENDENTLOADFLAG[:load_flags]

Аргументы

load_flags
Необязательное целочисленное значение, указывающее флаги нагрузки для применения при разрешении статически связанных зависимостей импорта модуля. Значение по умолчанию равно 0. Список поддерживаемых значений флагов см LOAD_LIBRARY_SEARCH_* . в записях в LoadLibraryEx.

Замечания

Когда операционная система разрешает статически связанный импорт модуля, он использует порядок поиска по умолчанию. Используйте параметр /DEPENDENTLOADFLAG, чтобы указать значение load_flags, которое изменяет путь поиска, используемый для разрешения этих импортов. В поддерживаемых операционных системах изменяется порядок поиска статического разрешения импорта, аналогичный тому, что LoadLibraryEx делает при использовании LOAD_LIBRARY_SEARCH параметров. Сведения о порядке поиска, заданном load_flags, см. в разделе "Порядок поиска" с помощью флагов LOAD_LIBRARY_SEARCH.

Этот флаг можно использовать для того, чтобы упростить установку одного вектора атак DLL. Например, рассмотрим приложение, которое статически связывали библиотеку DLL:

  • Злоумышленник может посадить библиотеку DLL с тем же именем, что и ранее в пути поиска разрешения импорта, например каталог приложения. Защищенные каталоги сложнее , но не являются невозможными для того, чтобы злоумышленник изменился.

  • Если библиотека DLL отсутствует в приложении, %windows%\system32 и %windows% каталогов, разрешение импорта переходит к текущему каталогу. Злоумышленник может посадить библиотеку DLL там.

В обоих случаях, если указать параметр /DEPENDENTLOADFLAG:0x800 ссылки (значение флага LOAD_LIBRARY_SEARCH_SYSTEM32), путь поиска модуля ограничен каталогом %windows%\system32. Он предлагает некоторую защиту от атак посадки на другие каталоги. Дополнительные сведения см. в разделе "Безопасность библиотеки динамического канала".

Чтобы просмотреть значение, заданное параметром /DEPENDENTLOADFLAG в любой библиотеке DLL, используйте команду DUMPBIN с параметром /LOADCONFIG .

Параметр /DEPENDENTLOADFLAG является новым в Visual Studio 2017. Это относится только к приложениям, работающим в Windows 10 RS1 и более поздних версиях Windows. Этот параметр игнорируется другими операционными системами, которые запускают приложение.

Установка параметра компоновщика DEPENDENTLOADFLAG в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>Компоновщик>Командная строка.

  3. Введите параметр в разделе "Дополнительные параметры".

Задание данного параметра компоновщика программным способом

См. также