Skip to content

Latest commit

 

History

History
42 lines (27 loc) · 2.29 KB

dynamicbase-use-address-space-layout-randomization.md

File metadata and controls

42 lines (27 loc) · 2.29 KB
description title ms.date f1_keywords helpviewer_keywords ms.assetid
Learn more about: /DYNAMICBASE (Use address space layout randomization)
/DYNAMICBASE (Use address space layout randomization)
05/05/2022
VC.Project.VCLinkerTool.RandomizedBaseAddress
-DYNAMICBASE linker option
/DYNAMICBASE linker option
DYNAMICBASE linker option
6c0ced8e-fe9c-4b63-b956-eb8a55fbceb2

/DYNAMICBASE (Use address space layout randomization)

Specifies whether to generate an executable image that can be randomly rebased at load time by using the address space layout randomization (ASLR) feature of Windows. ASLR was first available in Windows Vista.

Syntax

/DYNAMICBASE[:NO]

Remarks

The /DYNAMICBASE option modifies the header of an executable image, a .dll or .exe file, to indicate whether the application should be randomly rebased at load time, and enables virtual address allocation randomization, which affects the virtual memory location of heaps, stacks, and other operating system allocations. The /DYNAMICBASE option applies to both 32-bit and 64-bit images. ASLR is supported on Windows Vista and later operating systems. The option is ignored by earlier operating systems.

By default, /DYNAMICBASE is enabled. To disable this option, use /DYNAMICBASE:NO. The /DYNAMICBASE option is required for the /HIGHENTROPYVA option to have an effect.

Because ASLR can't be disabled on ARM, ARM64, or ARM64EC architectures, /DYNAMICBASE:NO isn't supported for these targets.

To set this linker option in Visual Studio

  1. Open the project Property Pages dialog box. For more information, see Set C++ compiler and build properties in Visual Studio.

  2. Select the Configuration Properties > Linker > Advanced property page.

  3. Modify the Randomized Base Address property.

To set this linker option programmatically

  • See xref:Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool.RandomizedBaseAddress%2A.

See also