/GUARD
(Włącz kontrole funkcji Guard)
Informuje konsolidator, czy ma obsługiwać kontrole funkcji Control Flow Guard na obrazie wykonywalny.
Składnia
/GUARD:CF
/GUARD:NO
Uwagi
Opcja /GUARD:CF
konsolidatora modyfikuje nagłówek pliku DLL lub EXE, aby wskazać obsługę kontroli środowiska uruchomieniowego funkcji Control Flow Guard (CFG). Konsolidator dodaje również wymagane dane adresu docelowego przepływu sterowania do nagłówka. Domyślnie /GUARD:CF
jest wyłączona. Można ją jawnie wyłączyć za pomocą polecenia /GUARD:NO
. Aby zapewnić skuteczność, /GUARD:CF
wymaga /DYNAMICBASE
również opcji konsolidatora (Użyj losowego układu przestrzeni adresowej), która jest domyślnie włączona.
Gdy kod źródłowy jest kompilowany przy użyciu /guard:cf
opcji kompilatora, kompilator analizuje przepływ sterowania, sprawdzając wszystkie pośrednie wywołania możliwych adresów docelowych. Kompilator wstawia kod w celu sprawdzenia, czy adres docelowy instrukcji wywołania pośredniego znajduje się na liście znanych adresów docelowych w czasie wykonywania. Systemy operacyjne obsługujące usługę CFG zatrzymują program, który kończy się niepowodzeniem sprawdzania środowiska uruchomieniowego CFG. Ta kontrola utrudnia atakującemu wykonanie złośliwego kodu przy użyciu uszkodzenia danych w celu zmiany obiektu docelowego wywołania.
Należy /GUARD:CF
określić opcję zarówno kompilatora, jak i konsolidatora w celu utworzenia obrazów wykonywalnych z obsługą cfG. Kod skompilowany, ale nie połączony przy użyciu /GUARD:CF
powoduje naliczenie kosztów kontroli środowiska uruchomieniowego, ale nie włącza ochrony CFG. Po określeniu /guard:cf
cl
opcji polecenia w celu skompilowania i połączenia w jednym kroku kompilator przekazuje flagę do konsolidatora. Gdy właściwość Control Flow Guard jest ustawiona w programie Visual Studio, /GUARD:CF
opcja jest przekazywana zarówno do kompilatora, jak i konsolidatora. Gdy pliki obiektów lub biblioteki zostały skompilowane oddzielnie, opcja musi być jawnie określona w poleceniu link
.
Aby ustawić tę opcję konsolidatora w programie Visual Studio
Otwórz okno dialogowe Strony właściwości dla projektu. Aby uzyskać więcej informacji, zobacz Ustawianie właściwości kompilatora i kompilacji.
Wybierz stronę właściwości wiersza polecenia konsolidatora>konfiguracji.>
W obszarze Dodatkowe opcje wprowadź .
/GUARD:CF
Wybierz przycisk OK lub Zastosuj , aby zapisać zmiany.
Aby programowo ustawić tę opcję konsolidatora
- Zobacz: AdditionalOptions.
Zobacz też
/guard
(Włącz funkcję Control Flow Guard)
Dokumentacja konsolidatora MSVC
Opcje konsolidatora MSVC