/GUARD (Ativar verificações de proteção)

Informa ao vinculador se deve dar 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 desabilitado explicitamente usando /GUARD:NO. Para ser eficaz, /GUARD:CF também requer a opção de vinculador (Usar randomização de /DYNAMICBASE layout de espaço de endereço), que está ativada por padrão.

Quando o código-fonte é compilado usando a opção do /guard:cf compilador, o compilador analisa o 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 dados corrompidos para alterar um destino de chamada.

A /GUARD:CF opção deve ser especificada para o compilador e o vinculador para criar imagens executáveis habilitadas para CFG. O código compilado, mas não vinculado usando /GUARD:CF incorre no custo das verificações de runtime, mas não habilita a proteção CFG. Quando a /guard:cf opção é especificada para o cl comando para compilar e vincular em uma etapa, o compilador passa o sinalizador para o vinculador. Quando a propriedade Proteção de Fluxo de Controle é definida no Visual Studio, a /GUARD:CF opção é passada para o compilador e o 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 de vinculador MSVC