/GUARD (Abilita controlli guard)

Indica al linker se supportare i controlli di Control Flow Guard nell'immagine eseguibile.

Sintassi

/GUARD:CF
/GUARD:NO

Osservazioni:

L'opzione /GUARD:CF del linker modifica l'intestazione di un file DLL o EXE per indicare il supporto per i controlli di runtime di Control Flow Guard (CFG). Anche il linker aggiunge all'intestazione i dati dell'indirizzo di destinazione del flusso di controllo richiesti. Per impostazione predefinita, /GUARD:CF è disabilitato. Può essere disabilitato in modo esplicito tramite /GUARD:NO. Per essere efficace, /GUARD:CF richiede anche l'opzione /DYNAMICBASE del linker (Usa layout casuale dello spazio degli indirizzi), attiva per impostazione predefinita.

Quando il codice sorgente viene compilato usando l'opzione del /guard:cf compilatore, il compilatore analizza il flusso di controllo esaminando tutte le chiamate indirette per i possibili indirizzi di destinazione. Il compilatore inserisce codice per verificare che l'indirizzo di destinazione di un'istruzione di chiamata indiretta sia incluso nell'elenco degli indirizzi di destinazione noti in fase di esecuzione. Con i sistemi operativi che supportano Guard flusso di controllo un programma che non supera il controllo di runtime di questa funzionalità viene arrestato. Questo controllo rende più difficile per un utente malintenzionato eseguire codice dannoso usando il danneggiamento dei dati per modificare una destinazione di chiamata.

L'opzione /GUARD:CF deve essere specificata sia al compilatore che al linker per creare immagini eseguibili abilitate per CFG. Il codice compilato ma non collegato tramite l'uso /GUARD:CF comporta il costo dei controlli di runtime, ma non abilita la protezione cfg. Quando l'opzione /guard:cf viene specificata al cl comando da compilare e collegare in un unico passaggio, il compilatore passa il flag al linker. Quando la proprietà Control Flow Guard è impostata in Visual Studio, l'opzione /GUARD:CF viene passata sia al compilatore che al linker. Quando i file oggetto o le librerie sono stati compilati separatamente, l'opzione deve essere specificata in modo esplicito nel link comando .

Per impostare questa opzione del linker in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare le proprietà del compilatore e della compilazione.

  2. Selezionare la pagina delle >proprietà Proprietà del linker della riga di comando del linker>di configurazione.

  3. In Opzioni aggiuntive immettere /GUARD:CF. Scegliere OK o Applica per salvare le modifiche.

Per impostare l'opzione del linker a livello di codice

Vedi anche

/guard (Abilitare La protezione del flusso di controllo)
Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC