PE 文件中的 OSMajor 和 OSMinor 版本号



最近我偶然发现了一个奇怪的现象。

我正在为 PE 文件构建一个转储程序,可以很好地阅读部分标题和"可选"部分标题。现在,当我到达"OS major"和"OS minor "字段时,我注意到一个奇怪的值。

[WORD] OS VERSION major        :0x00000006
[WORD] OS VERSION minor        :0x00000000

显然,这意味着Windows Vista。

这里: https://learn.microsoft.com/de-de/windows/win32/sysinfo/operating-system-version?redirectedfrom=MSDN

我写了一个简单的hello-world 32位可执行文件,并使用7zip进行了测试.exe(由于某种原因,它是4.0 [==Win98](。

现在我很困惑。我新编写的PE文件(Visual Studio 2019(怎么可能不是操作系统版本10??? Microsoft可能因为懒惰而没有正确更新他们的链接器吗???

在该页面上,它说明了清单文件的一些内容,但只是告诉您Windows 8.0,如果您不显示可执行文件(但是我应该这样做,对于问题来说并不重要(。

问题:有没有办法从二进制文件中读取正确的操作系统版本?

事实证明,这个数字似乎更像是一个"所需的最低预处理系统">

这可以解释为什么它是Windows Vista。

最新更新