/GUARD
(Povolit kontroly ochrany)
Říká linkeru, jestli má podporovat kontroly ochrany toku řízení ve spustitelném obrázku.
Syntaxe
/GUARD:CF
/GUARD:NO
Poznámky
Možnost /GUARD:CF
linkeru upraví hlavičku souboru DLL nebo EXE tak, aby označí podporu kontrol modulu runtime Control Flow Guard (CFG). Linker také přidá do hlavičky požadovaná data cílové adresy toku řízení. Ve výchozím nastavení /GUARD:CF
je zakázaná. Lze ho explicitně zakázat pomocí ./GUARD:NO
Aby to bylo efektivní, /GUARD:CF
vyžaduje také možnost linkeru /DYNAMICBASE
(Použít náhodné rozložení adresního prostoru), která je ve výchozím nastavení zapnutá.
Pokud je zdrojový kód zkompilován pomocí možnosti kompilátoru /guard:cf
, kompilátor analyzuje tok řízení prozkoumáním všech nepřímých volání možných cílových adres. Kompilátor vloží kód pro ověření cílové adresy instrukce nepřímého volání v seznamu známých cílových adres za běhu. Operační systémy, které podporují CFG, zastaví program, který selže kontrolou modulu runtime CFG. Tato kontrola znesnadňuje útočníkovi spuštění škodlivého kódu pomocí poškození dat ke změně cíle volání.
Aby /GUARD:CF
bylo možné vytvářet spustitelné image s podporou CFG, musí být tato možnost zadána pro kompilátor i linker. Kód zkompilovaný, ale není propojený pomocí nákladů /GUARD:CF
na kontroly za běhu, ale neumožňuje ochranu CFG. /guard:cf
Pokud je pro příkaz zadána cl
možnost kompilace a propojení v jednom kroku, kompilátor předá příznak linkeru. Pokud je vlastnost Control Flow Guard nastavena v sadě Visual Studio, /GUARD:CF
je tato možnost předána kompilátoru i linkeru. Pokud jsou objektové soubory nebo knihovny zkompilovány samostatně, musí být tato možnost explicitně zadána link
v příkazu.
Nastavení této možnosti linkeru v sadě Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Další informace naleznete v tématu Nastavení vlastností kompilátoru a sestavení.
Vyberte stránku vlastností linkeru>Vlastností konfigurace>příkazového řádku.
V dalších možnostech zadejte
/GUARD:CF
. Změny uložíte kliknutím na OK nebo Použít .
Programové nastavení tohoto parametru linkeru
- Viz třída AdditionalOptions.
Viz také
/guard
(Povolení ochrany toku řízení)
Referenční zdroje k linkeru MSVC
Možnosti linkeru MSVC