PE 中的“孤立图像”属性是啥?
Posted
技术标签:
【中文标题】PE 中的“孤立图像”属性是啥?【英文标题】:What is the "Isolated Image" attribute in a PE?PE 中的“孤立图像”属性是什么? 【发布时间】:2017-01-28 14:22:29 【问题描述】:如果我查看可移植可执行文件的内部结构,在 IMAGE_OPTIONAL_HEADER
部分内有 IMAGE_DLLCHARACTERISTICS_NO_ISOLATION
字段,正如 Microsoft 提到的 here 这意味着:“图像具有隔离意识,但不应该被隔离。” .但是,我不明白这里的意思或暗示,也找不到更多信息。此选项也作为 Visual Studio 选项存在,并且在创建 Win32 应用程序项目时默认启用(VS 2015 C++)。在启用它之前,我想知道它对代码生成有什么作用。
如果有人知道,请分享。提前致谢。
【问题讨论】:
【参考方案1】:它控制Windows加载器在加载进程时是否寻找manifest:
/ALLOWISOLATION
使操作系统执行清单查找和加载。
/ALLOWISOLATION
是默认设置。
/ALLOWISOLATION:NO
表示加载可执行文件时就像没有清单一样,并导致 EDITBIN 引用在可选标头的DllCharacteristics
字段中设置IMAGE_DLLCHARACTERISTICS_NO_ISOLATION
位。 当对可执行文件禁用隔离时,Windows 加载程序不会尝试为新创建的进程查找应用程序清单。新进程没有默认的激活上下文,即使在可执行文件本身中有一个清单,或者有一个名称为executable-name.exe.manifest
的清单。
https://msdn.microsoft.com/en-us/library/69xzf91x.aspx
【讨论】:
以上是关于PE 中的“孤立图像”属性是啥?的主要内容,如果未能解决你的问题,请参考以下文章