【问题标题】:What are the effects of the PE header "subsystem" field?PE头“子系统”字段的作用是什么?
【发布时间】:2011-02-01 18:14:47
【问题描述】:

我有几个关于PE“子系统”领域的问题,可能在某种程度上重叠。为了避免将每个问题分别向这个地方发送垃圾邮件,我想我会一起问他们,然后单独重新问任何没有得到解决的问题。希望这没问题...

我知道IMAGE_SUBSYSTEM_WINDOWS_CUI 使操作系统将进程“预附加”到控制台,无论是其父进程还是在必要时创建一个新控制台。 IMAGE_SUBSYSTEM_WINDOWS_GUI 不会那样做。

在现代版本的 Windows 中,这两者之间还有其他区别吗?过去还有更多吗?

其他的值呢,它们是被 Windows 用来拒绝 EXE 的,还是导致 Windows 模拟不同的 API?这个“模拟”过程是否可以由最终用户扩展,还是硬嵌入到操作系统中?

【问题讨论】:

    标签: windows portable-executable


    【解决方案1】:

    是的,预连接控制台似乎是目前唯一的区别。如果没记错的话,基于 16 位的 Windows 版本 (95/98/SE/Me) 的情况并非如此。

    旧版本的 NT 接受 POSIX 和 OS/2 子系统的其他值。

    理论上,您可能能够使用 NT Native API 编写自己的子系统。虽然如果你看的话,有相当多的文档,但我完全不确定它是否足以完成这项任务。无论如何,Win32 子系统一直具有相当“特殊”的地位,现在其他子系统都消失了,我根本不确定他们是否试图确保可以集成其他子系统。在 NT 4(例如)上,我会说“困难但几乎可以肯定”。在当前版本的 Windows 上,我会说内核的某些更改会阻止它工作的几率是偶数 - 并且比当前可用的文档可以满足除 MS 之外的任何人的任务的几率要低得多实现一个子系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 2016-04-20
      • 2020-01-06
      • 2011-12-06
      • 2013-12-11
      相关资源
      最近更新 更多