009 - 问,什么是镜像随机化?

009 - 问,什么是镜像随机化?

/DYNAMICBASE (Use address space layout randomization)




使用vs2008创建的工程,默认都启用这个link标记。

参考文章:http://blogs.msdn.com/b/vcshblog/archive/2009/09/22/dynamicbase-nxcompat.aspx 

摘抄:

/DYNAMICBASE使用 Windows Vista 的地址空间布局随机化 ASLRAddress Space Layout Randomization 功能,指定是否生成可在加载时随机重新设定基址的可执行文件映像。

该选项隐含了“/FIXED:NO”,以便在可执行文件中生成重定位节。 具体请参见/FIXED中的说明。

 

默认情况下,如果某个组件需要 Windows Vista /SUBSYSTEM 6.0和更高版本),则会自动打开 /DYNAMICBASE

/DYNAMICBASE:NO可以用于禁用随机重新设定基址。

 

这篇文件对ASLR进行了介绍: http://technet.microsoft.com/zh-cn/magazine/cc162458.aspx

ASLR仅被Windows Vista和之后的操作系统支持,它会被之前的操作系统忽略。

 

ASLR对于应用程序来说是透明的。当开启ASLR的时候,唯一的区别是,操作系统将会无条件的对可执行文件重新设定基址。如果未开启ASLR,只有当发生地址冲突的时候,操作系统才会重新设定基址。

 

你可能感兴趣的:(009 - 问,什么是镜像随机化?)