PE中的“隔离图像”属性是什么?

时间:2017-01-28 14:22:29

标签: c++ windows visual-studio portable-executable

如果我查看便携式可执行文件的内部信息,IMAGE_OPTIONAL_HEADER部分内有IMAGE_DLLCHARACTERISTICS_NO_ISOLATION字段,正如Microsoft提到here一样,它意味着:“图像是隔离感知的,但是不应孤立。“但是,我不明白这是什么意思,或隐含在这里,无法找到更多相关信息。此选项也作为Visual Studio选项存在,并且在创建Win32应用程序项目时默认启用它(VS 2015 C ++)。在启用它之前,我想知道它对代码生成的作用。

如果有人知道,请分享。提前谢谢。

1 个答案:

答案 0 :(得分:4)

它控制Windows加载程序在加载进程时是否查找manifest

  

/ALLOWISOLATION 会导致操作系统执行清单查找和加载。

     

/ALLOWISOLATION 是默认设置。

     

/ALLOWISOLATION:NO 表示可执行文件的加载方式就像没有清单一样,并导致EDITBIN引用设置可选标头中的IMAGE_DLLCHARACTERISTICS_NO_ISOLATIONDllCharacteristics {executable-name.exe.manifest 1}}字段。   当为可执行文件禁用隔离时,Windows加载程序不会尝试为新创建的进程查找应用程序清单。即使可执行文件本身中有清单,或者存在名称为{{1}}的清单,新进程也没有默认激活上下文。

https://msdn.microsoft.com/en-us/library/69xzf91x.aspx