是否有选择退出(或选择加入)NoExecute保护的程序集清单(或者可能是PE映像标志)?
默认情况下,Windows仅使用NoExecute保护来保护自己的二进制文件:
但我可能想选择我的可执行文件进入NX保护。
我也可能需要向用户表明我的应用程序与NX保护不兼容。而不是强迫用户手动查找并将我添加到列表中,我可以为他们执行此操作:
注意:我将此视为我选择以标准用户身份运行我的应用程序的能力:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>
或选择退出&#34;作为标准用户运行的能力&#34;保护:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>
注意:我认为有一种选择加入或退出NX保护的方法。所以如果答案是否,那很好。但我还在问,因为我可能错了。
答案 0 :(得分:2)
您可以选择加入IMAGE_DLLCHARACTERISTICS_NX_COMPAT(和/或SetProcessDEPPolicy)
如果系统设置不是AlwaysOn(无法在GUI IIRC中设置),那么您可以选择退出SetProcessDEPPolicy
父进程可以在Vista +
上强制使用PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE DEPOlder ATL code和某些第三方DRM / copyprotection内容有特殊处理,当系统处于退出模式时不会被DEP困住(不确定AlwaysOn)
要在XP.SP2 / 2003.SP1上使用“SetProcessDEPPolicy”,请调用未记录的NtSetInformationProcess函数。