/INTEGRITYCHECK (署名の確認が必要)

読み込み時にバイナリ イメージのデジタル署名を確認する必要があることを指定します。

/INTEGRITYCHECK

解説

既定では、/INTEGRITYCHECK はオフになっています。

/INTEGRITYCHECK リンカー オプションによって、DLL ファイルまたは実行可能ファイルの PE ヘッダーのフラグ IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY が設定されます。 このフラグは、Windows でイメージを読み込むためにデジタル署名を確認するよう、メモリ マネージャーに指示します。 このオプションは、特定の Windows 機能が読み込む 32 ビット DLL と 64 ビット DLL の両方に対して設定する必要があります。 これは、Windows Vista、Windows Server 2008、およびそれ以降のすべてのバージョンの Windows と Windows Server のすべてのデバイス ドライバーに推奨されます。 Windows Vista 以前の Windows は、このフラグを無視します。 詳しくは、「Forced Integrity Signing of Portable Executable (PE) files (移植可能な実行可能 (PE) ファイルの強制的な整合性署名)」をご覧ください。

/INTEGRITYCHECK ファイルへの署名

/INTEGRITYCHECK を使用してリンクされた DLL と実行可能ファイルに関して、Microsoft には新しい署名ガイダンスがあります。 このガイダンスは、クロス署名プログラムからのクロス署名証明書を推奨するために使用されます。 ただし、クロス署名プログラムは非推奨になっています。 代わりに Microsoft Azure Code Signing プログラムを/INTEGRITYCHECK使用してファイルに署名する必要があります。

このリンカー オプションを Visual Studio で設定するには

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

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

  3. デジタル署名されたイメージを作成するには、[追加オプション] コマンド ラインに含めます/INTEGRITYCHECK。 デジタル署名されたイメージは、読み込まれる前に検証チェックに合格する必要があります。 既定では、この機能は無効です。

  4. [OK] を選択して変更を保存します。

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション
Forced integrity signing of portable executable (PE) files (ポータブル実行可能 (PE) ファイルの整合性の署名を強制的に実行)
カーネル モードのコード署名の要件
AppInit DLL とセキュア ブート