/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 以降の場合:

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。

  2. [構成プロパティ]>[リンカー]>[詳細] プロパティ ページを選択します。

  3. [CET Shadow Stack Compatible]\(CET シャドウ スタック互換\) プロパティを選択します。

  4. ドロップダウン コントロールで、バイナリを CET シャドウ スタックと互換性のあるものとしてマークする場合は Yes (/CETCOMPAT) を、互換性がないものとしてマークする場合は No (/CETCOMPAT:NO) を選択します。

以前のバージョンの Visual Studio 2019 の場合:

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。

  2. [構成プロパティ]>[リンカー]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加のオプション] 編集コントロールで、バイナリを CET シャドウ スタックと互換性のあるものとしてマークする場合は /CETCOMPAT を、互換性がないものとして明示的にマークする場合は /CETCOMPAT:NO を追加します。

このリンカーをコードから設定するには

プログラムでこのオプションに相当するものはありません。

関連項目

リンカー オプション