/DYNAMICBASE
(アドレス空間レイアウトのランダム化を使用)
Windows のアドレス空間レイアウトランダム化 (ASLR) 機能を使用して、読み込み時にランダムにリベースできる実行可能イメージを生成するかどうかを指定します。 ASLR は Windows Vista で最初に使用できるようになりました。
構文
/DYNAMICBASE
[:NO
]
解説
/DYNAMICBASE
オプションは、実行可能なイメージ、.dllまたは.exe ファイルのヘッダーを変更して、読み込み時にアプリケーションをランダムにリベースするかどうかを示し、仮想アドレス割り当てのランダム化を有効にします。これは、ヒープ、スタック、およびその他のオペレーティング システム割り当ての仮想メモリの場所に影響します。 /DYNAMICBASE
オプションは、32 ビットイメージと 64 ビット イメージの両方に適用されます。 ASLR は Windows Vista 以降のオペレーティング システムでサポートされています。 このオプションは、以前のオペレーティング システムでは無視されます。
既定では、/DYNAMICBASE
が有効となっています。 このオプションを無効にするには、 /DYNAMICBASE:NO
を使用します。 /HIGHENTROPYVA
オプションを有効にするには、/DYNAMICBASE
オプションが必要です。
ASLR は ARM、ARM64、または ARM64EC アーキテクチャでは無効にできないため、これらのターゲット /DYNAMICBASE:NO
はサポートされていません。
このリンカー オプションを Visual Studio で設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「Visual Studio で C++ コンパイラとビルド プロパティを設定する」をご覧ください。
[構成プロパティ]>[リンカー]>[詳細] プロパティ ページを選択します。
[ランダム化されたベース アドレス] プロパティを変更します。
このリンカーをコードから設定するには
- 以下を参照してください。RandomizedBaseAddress