/CETCOMPAT
(CET シャドウ スタック互換)
リンカーが実行可能イメージを制御フロー強制テクノロジ (CET) シャドウ スタックと互換性のあるものとしてマークするかどうかを指定します。
構文
/CETCOMPAT
/CETCOMPAT:NO
引数
NO
実行可能ファイルを CET シャドウ スタックと互換性のあるものとしてマークしないことを指定します。
解説
Control-flow Enforcement Technology (CET) シャドウ スタックは、コンピューター プロセッサの機能です。 Return-Oriented Programming (ROP) ベースのマルウェア攻撃を防ぐ機能が提供されます。 詳細については、「 A Technical Look at Intel's Control-flow Enforcement Technology を参照してください。
/CETCOMPAT
リンカー オプションは、バイナリを CET シャドウ スタックと互換性のあるものとしてマークするようリンカーに指示します。 /CETCOMPAT:NO
は、バイナリを CET シャドウ スタックと互換性がないものとしてマークします。 コマンド ラインで両方のオプションが指定されている場合は、最後に指定したものが使用されます。 このスイッチは現在、x86 および x64 アーキテクチャにのみ適用されます。
/CETCOMPAT
オプションは、Visual Studio 2019 以降で使用できます。
Visual Studio で /CETCOMPAT
リンカー オプションを設定するには
Visual Studio 2019 バージョン 16.7 以降の場合:
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。
[構成プロパティ]>[リンカー]>[詳細] プロパティ ページを選択します。
[CET Shadow Stack Compatible]\(CET シャドウ スタック互換\) プロパティを選択します。
ドロップダウン コントロールで、バイナリを CET シャドウ スタックと互換性のあるものとしてマークする場合は
Yes (/CETCOMPAT)
を、互換性がないものとしてマークする場合はNo (/CETCOMPAT:NO)
を選択します。
以前のバージョンの Visual Studio 2019 の場合:
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。
[構成プロパティ]>[リンカー]>[コマンド ライン] プロパティ ページを選択します。
[追加のオプション] 編集コントロールで、バイナリを CET シャドウ スタックと互換性のあるものとしてマークする場合は
/CETCOMPAT
を、互換性がないものとして明示的にマークする場合は/CETCOMPAT:NO
を追加します。
このリンカーをコードから設定するには
プログラムでこのオプションに相当するものはありません。