gpt4 book ai didi

c++ - PE文件中的MZ签名有什么用?

转载 作者:可可西里 更新时间:2023-11-01 17:01:19 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序将解析 PE 对象以获取各种信息。

虽然阅读规范,但我无法找出为什么 MZ 字节在那里,因为我在这 2 个字节应该表示的机器类型列表中找不到它。

谁能澄清一下?

最佳答案

MZ签名是MS-DOS可重定位16位EXE格式使用的签名。

PE 二进制文件包含 MZ header 的原因是为了向后兼容。如果可执行文件在基于 DOS 的系统上运行,它将运行 MZ 版本(它几乎总是只是 stub ,表示您需要在 Win32 系统上运行该程序)。

当然,当世界从 DOS 过渡到它之后出现的任何东西时,这在今天已经没有那么有用了。

那时有一些程序实际上将 DOS 版本和 Win32 版本绑定(bind)在一个二进制文件中。

与处理 Windows 历史的大多数事情一样,Raymond Chen 有一些关于这个主题的有趣文章:

关于c++ - PE文件中的MZ签名有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com