Share via


/GUARD (Aktifkan Pemeriksaan Penjaga)

Memberi tahu linker apakah akan mendukung pemeriksaan Control Flow Guard dalam gambar yang dapat dieksekusi.

Sintaks

/GUARD:CF
/GUARD:NO

Keterangan

Opsi /GUARD:CF linker memodifikasi header file DLL atau EXE untuk menunjukkan dukungan untuk pemeriksaan runtime Control Flow Guard (CFG). Linker juga menambahkan data alamat target alur kontrol yang diperlukan ke header. Secara default, /GUARD:CF dinonaktifkan. Ini dapat dinonaktifkan secara eksplisit dengan menggunakan /GUARD:NO. Agar efektif, /GUARD:CF juga memerlukan /DYNAMICBASE opsi linker (Gunakan pengacakan tata letak ruang alamat), yang aktif secara default.

Ketika kode sumber dikompilasi dengan menggunakan /guard:cf opsi kompilator, pengkompilasi menganalisis alur kontrol dengan memeriksa semua panggilan tidak langsung untuk kemungkinan alamat target. Pengkompilasi menyisipkan kode untuk memverifikasi alamat target instruksi panggilan tidak langsung ada dalam daftar alamat target yang diketahui saat runtime. Sistem operasi yang mendukung CFG menghentikan program yang gagal dalam pemeriksaan runtime CFG. Pemeriksaan ini mempersulit penyerang untuk menjalankan kode berbahaya dengan menggunakan kerusakan data untuk mengubah target panggilan.

Opsi /GUARD:CF harus ditentukan ke pengkompilasi dan pengtaut untuk membuat gambar yang dapat dieksekusi berkemampuan CFG. Kode yang dikompilasi tetapi tidak ditautkan dengan menggunakan /GUARD:CF menimbulkan biaya pemeriksaan runtime, tetapi tidak mengaktifkan perlindungan CFG. /guard:cf Ketika opsi ditentukan ke cl perintah untuk mengkompilasi dan menautkan dalam satu langkah, pengkompilasi meneruskan bendera ke linker. Saat properti Control Flow Guard diatur di Visual Studio, /GUARD:CF opsi diteruskan ke pengkompilasi dan linker. Ketika file objek atau pustaka telah dikompilasi secara terpisah, opsi harus ditentukan secara eksplisit dalam link perintah.

Untuk mengatur opsi linker ini di Visual Studio

  1. Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur properti kompilator dan build.

  2. Pilih halaman properti Properti Konfigurasi>Penaut>Baris Perintah.

  3. Di Opsi Tambahan, masukkan /GUARD:CF. Pilih OK atau Terapkan untuk menyimpan perubahan Anda.

Untuk menyetel opsi linker ini secara terprogram

Baca juga

/guard (Aktifkan Control Flow Guard)
Referensi linker MSVC
Opsi linker MSVC