Udostępnij za pośrednictwem


/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

  1. 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.

  2. Wybierz stronę właściwości wiersza polecenia konsolidatora>konfiguracji.>

  3. W obszarze Dodatkowe opcje wprowadź ./GUARD:CF Wybierz przycisk OK lub Zastosuj , aby zapisać zmiany.

Aby programowo ustawić tę opcję konsolidatora

Zobacz też

/guard (Włącz funkcję Control Flow Guard)
Dokumentacja konsolidatora MSVC
Opcje konsolidatora MSVC