/GUARD (Schutzprüfungen aktivieren)

Gibt Unterstützung für die Überprüfung des Ablaufsteuerungsschutzes im ausführbaren Image an.

Syntax

/GUARD:{CF|NO}

Bemerkungen

Wenn /GUARD:CF angegeben wird, ändert der Linker den Header einer DLL- oder EXE-Datei, um Unterstützung für CFG-Laufzeitüberprüfungen (Control Flow Guard, Ablaufsteuerungsschutz) anzugeben. Der Linker fügt dem Header auch die erforderlichen Ablaufsteuerungs-Zieladressdaten hinzu. Standardmäßig ist /GUARD:CF deaktiviert. Es kann explizit mithilfe von /GUARD:NO deaktiviert werden. Um effektiv zu sein, erfordert /GUARD:CF auch die Linkeroption /DYNAMICBASE (Zufällige Anordnung des Adressraumlayouts verwenden), die standardmäßig aktiviert ist.

Wenn Quellcode mithilfe der Option /guard:cf kompiliert wird, analysiert der Compiler die Ablaufsteuerung, indem er alle indirekten Aufrufe auf mögliche Zieladressen untersucht. Der Compiler fügt Code ein, um zu überprüfen, ob sich die Zieladresse einer indirekten Aufrufanweisung zur Laufzeit in der Liste der bekannten Zieladressen befindet. Betriebssysteme, die CFG unterstützen, beenden ein Programm, das bei einer CFG-Laufzeitüberprüfung einen Fehler ausgibt. Dies erschwert es einem Angreifer, schädlichen Code mithilfe von Datenbeschädigung auszuführen, um ein Aufrufziel zu ändern.

Die /GUARD:CF-Option muss dem Compiler und dem Linker angegeben werden, um CFG-fähige ausführbare Images zu erstellen. Code, der kompiliert, aber nicht mit /GUARD:CF verknüpft wurde, verursacht Kosten für Überprüfungen zur Laufzeit, aktiviert aber nicht den CFG-Schutz. Wenn die Option /GUARD:CF cl für den Befehl angegeben wird, der kompiliert und in einem Schritt eine Verknüpfung erstellt werden soll, übergibt der Compiler das Flag an den Linker. Wenn die Control Flow Guard-Eigenschaft in Visual Studio, wird die Option /GUARD:CF sowohl an den Compiler als auch an den Linker übergeben. Wenn Objektdateien oder Bibliotheken separat kompiliert wurden, muss die Option explizit im Befehl angegeben link werden.

So legen Sie diese Linkeroption in Visual Studio fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>Linker>Befehlszeile.

  3. Geben Sie unter Zusätzliche Optionen den Namen ein /GUARD:CF.

Siehe auch

/guard (Ablaufsteuerungsschutz aktivieren)
MSVC-Linkerreferenz
MSVC-Linkeroptionen