PE头“子系统”字段有什么影响?

时间:2011-02-01 18:14:47

标签: windows portable-executable

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

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

在现代版本的Windows中,这两者之间是否存在其他差异?过去还有更多吗?

其他值如何,Windows仅用于拒绝EXE,还是导致Windows模拟其他API?这个“仿真”过程是否可以被最终用户扩展,还是难以融入操作系统?

1 个答案:

答案 0 :(得分:7)

是的,预先附加控制台似乎是唯一的当前差异。如果内存服务,那么基于16位的Windows版本(95/98 / SE / Me)并非如此。

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

理论上,可能能够使用NT Native API编写自己的子系统。虽然如果你看起来有相当多的文件,我不能确定它足以完成这项任务。无论如何,Win32子系统始终具有相当“特殊”的状态,现在其他子系统已经消失,我完全不确定他们是否已经尝试确保可以集成其他子系统。在NT 4(举个例子)我说过“很难,但几乎可以肯定”。在当前版本的Windows上,我会说有一些甚至可能会对内核进行一些更改会阻止它工作 - 甚至远低于当前可用文档可以胜任任何人的任务的几率。实现子系统。