ASLR与mshta.exe报错“系统无法执行指定程序”有啥关系?
Posted
技术标签:
【中文标题】ASLR与mshta.exe报错“系统无法执行指定程序”有啥关系?【英文标题】:What is the relation between ASLR and the mshta.exe's error "The system cannot execute the specified program"?ASLR与mshta.exe报错“系统无法执行指定程序”有什么关系? 【发布时间】:2022-01-14 07:16:36 【问题描述】:我在运行 mshta.exe
时遇到问题。如下图所示,我收到错误:The system cannot execute the specified program.
我创建了一个test.hta
文件,它也无法执行。我已经尝试了这些解决方案,但都没有奏效:
-
我已禁用 App Locker
我已禁用防病毒软件
我已关闭 Windows 防火墙。
然而,当我启用ASLR
时,它起作用了!
我已将注册表值 MoveImages
编辑为 1。它位于键 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
下。我之前禁用了 ASLR,因为有时我会调试 DLL。
我的问题是:为什么会这样? ASLR 如何帮助解决这个问题?
【问题讨论】:
更改 ASLR 设置后是否要重新启动? 不确定图像是否有帮助,您尝试运行的命令是什么,完整的命令? @Anders 是的,我确实重启了。 @user692942 是的,我尝试了完整的命令,但效果不佳。 我在问完整的命令是什么,图像无法帮助显示您运行的内容? 【参考方案1】:我的一位朋友想分享一个有趣的答案:
“它的错误来自NtCreateUserProcess
的内核,在这个api中,调用ZwMapViewOfSection
将可执行图像映射到内存。在我们的例子中,MapView返回STATUS_CONFLICTING_ADDRESSES
。
如果您阅读 ZwMapViewOfSection
文档,您会看到 Windows 缓存了一些地址范围,因此如果缓存中没有 ASLR 请求地址的图像,它将在 ZwMapViewOfSection
处失败。
ASLR 不会发生这种情况,因为 Windows 将保证新的图像基地址不会在任何缓存范围内”。
【讨论】:
以上是关于ASLR与mshta.exe报错“系统无法执行指定程序”有啥关系?的主要内容,如果未能解决你的问题,请参考以下文章