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