/GUARD (Ativar verificações de guarda)

Informa ao vinculador se deseja oferecer suporte a verificações do Control Flow Guard na imagem executável.

Sintaxe

/GUARD:CF
/GUARD:NO

Comentários

A /GUARD:CF opção de vinculador modifica o cabeçalho de um arquivo DLL ou EXE para indicar suporte para verificações de tempo de execução do Control Flow Guard (CFG). O vinculador também adiciona os dados de endereço do destino do fluxo de controle necessários ao cabeçalho. Por padrão, /GUARD:CF está desabilitado. Ele pode ser explicitamente desabilitado usando /GUARD:NOo . Para ser eficaz, /GUARD:CF também requer a opção de vinculador (Usar randomização de layout de espaço de endereço), que está ativada /DYNAMICBASE por padrão.

Quando o código-fonte é compilado usando a opção do compilador, o compilador analisa o /guard:cf fluxo de controle examinando todas as chamadas indiretas para possíveis endereços de destino. O compilador insere um código para verificar se o endereço de destino de uma instrução de chamada indireta está na lista de endereços de destino conhecidos no runtime. Sistemas operacionais que dão suporte ao CFG interrompem um programa que falha em uma verificação de runtime do CFG. Essa verificação torna mais difícil para um invasor executar código mal-intencionado usando corrupção de dados para alterar um destino de chamada.

A /GUARD:CF opção deve ser especificada para o compilador e vinculador para criar imagens executáveis habilitadas para CFG. O código compilado, mas não vinculado usando /GUARD:CF incorre no custo de verificações de tempo de execução, mas não habilita a proteção CFG. Quando a /guard:cf opção é especificada para o comando para compilar e vincular em uma etapa, o compilador passa o sinalizador para o cl vinculador. Quando a propriedade Control Flow Guard é definida no Visual Studio, a /GUARD:CF opção é passada para o compilador e vinculador. Quando arquivos de objeto ou bibliotecas tiverem sido compiladas separadamente, a opção deverá ser especificada explicitamente no comando link.

Para definir essa opção do vinculador no Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para mais informações, consulte Definir propriedades de build e do compilador.

  2. Selecione a página de propriedades Propriedades da Configuração>Vinculador>Linha de Comando.

  3. Em Opções Adicionais, insira /GUARD:CF. Escolha OK ou Aplicar para salvar as alterações.

Para definir esta opção do vinculador por meio de programação

Confira também

/guard (Habilitar proteção do fluxo de controle)
Referência de vinculador MSVC
Opções do vinculador MSVC