/GUARD
(Включить проверки Guard)
Указывает компоновщику, следует ли поддерживать проверка Control Flow Guard в исполняемом образе.
Синтаксис
/GUARD:CF
/GUARD:NO
Замечания
Параметр /GUARD:CF
компоновщика изменяет заголовок DLL-файла или EXE-файла, чтобы указать поддержку проверка среды выполнения Control Flow Guard (CFG). Компоновщик также добавляет в заголовок требуемый целевой поток управления. По умолчанию /GUARD:CF
отключен. Его можно явно отключить с помощью /GUARD:NO
. Чтобы быть эффективным, /GUARD:CF
также требуется /DYNAMICBASE
параметр компоновщика (использовать выборку макета адресного пространства), которая включена по умолчанию.
При компиляции исходного кода с помощью /guard:cf
параметра компилятора компилятор анализирует поток управления, проверяя все косвенные вызовы возможных целевых адресов. Компилятор вставляет код, чтобы убедиться, что целевой адрес инструкции косвенного вызова находится в списке известных целевых адресов во время выполнения. Операционные системы, поддерживающие CFG, останавливают программу, для которой проверка в среде выполнения CFG завершается сбоем. Это проверка затрудняет выполнение злоумышленником вредоносного кода с помощью повреждения данных для изменения целевого объекта вызова.
Параметр /GUARD:CF
должен быть указан компилятору и компоновщику для создания исполняемых образов с поддержкой CFG. Скомпилированный код, но не связанный с использованием /GUARD:CF
затрат на проверка среды выполнения, но не включает защиту CFG. /guard:cf
Если параметр указан команде cl
для компиляции и связывания на одном шаге, компилятор передает флаг компоновщику. Если свойство Control Flow Guard задано в Visual Studio, /GUARD:CF
параметр передается компилятору и компоновщику. Если файлы или библиотеки были скомпилированы отдельно, параметр должен быть явно указан в команде link
.
Настройка этого параметра компоновщика в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Set компилятора и свойств сборки.
Перейдите на страницу свойств Свойства конфигурации>Компоновщик>Командная строка.
В поле "Дополнительные параметры" введите
/GUARD:CF
. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.
Задание данного параметра компоновщика программным способом
- См. раздел AdditionalOptions.
См. также
/guard
(Включить функцию управления Flow Guard)
Справочник по компоновщику MSVC
Параметры компоновщика MSVC
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по