【问题标题】: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 文件,它也无法执行。我已经尝试了这些解决方案,但都没有奏效:

  1. 我已禁用 App Locker
  2. 我已禁用防病毒软件
  3. 我已关闭 Windows 防火墙。

然而,当我启用ASLR 时,它起作用了! 我已将注册表值 MoveImages 编辑为 1。它位于键 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management 下。我之前禁用了 ASLR,因为有时我会调试 DLL。

我的问题是:为什么会这样? ASLR 如何帮助解决这个问题?

【问题讨论】:

  • 更改 ASLR 设置后是否要重新启动?
  • 不确定图像是否有帮助,您尝试运行的命令是什么,完整的命令?
  • @Anders 是的,我确实重启了。
  • @user692942 是的,我尝试了完整的命令,但效果不佳。
  • 我在问完整的命令是什么,图像无法帮助显示您运行的内容?

标签: windows operating-system reverse-engineering hta aslr


【解决方案1】:

我的一位朋友想分享一个有趣的答案:

“它的错误来自NtCreateUserProcess的内核,在这个api中,调用ZwMapViewOfSection将可执行图像映射到内存。在我们的例子中,MapView返回STATUS_CONFLICTING_ADDRESSES。 如果您阅读 ZwMapViewOfSection 文档,您会看到 Windows 缓存了一些地址范围,因此如果缓存中没有 ASLR 请求地址的图像,它将在 ZwMapViewOfSection 处失败。 ASLR 不会发生这种情况,因为 Windows 将保证新的图像基地址不会在任何缓存范围内”。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2014-10-23
    相关资源
    最近更新 更多