最近我偶然发现了一个奇怪的现象。
我正在为 PE 文件构建一个转储程序,很好地阅读了节标题和“可选”节标题。现在,当我到达“OS Major”和“OS Minor”字段时,我注意到一个奇怪的值。
[WORD] OS VERSION major :0x00000006
[WORD] OS VERSION minor :0x00000000
显然这意味着Windows Vista......
Here: https://learn.microsoft.com/de-de/windows/win32/sysinfo/operating-system-version?redirectedfrom=MSDN 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???
微软是否可能因为懒惰而没有正确更新他们的链接器???
在该页面上,它说了一些关于清单文件的内容,但只是说,如果您没有清单文件,它会告诉您 Windows 8.0(但是我应该这样做,对于这个问题来说并不重要)。
问题:有没有办法从二进制文件中读取正确的操作系统版本?
事实证明,这个数字似乎更像是一个“所需的最低操作系统”,
这可以解释为什么它是Windows Vista。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)