PEI 格式是什么?

Jer*_*oen 5 file-format portable-executable executable-format

我知道PE是COFF的修改版,PE+是PE的64位支持的修改版,但是PEI是什么?我说 PE 和 PEI 之间没有区别并且它们可以互换使用是否正确?

JEd*_*dot 5

" pe 格式和 pei 格式之间的唯一区别是后者前面有一个 MSDOS 2.0 .exe 标头,打印消息“此应用程序必须在 Windows 下运行。”(或类似的信息)。(FIXME:是否该说法是否属实尚不清楚。pe 和 pei 格式之间是否存在更细微的差异?现在假设没有。如果你找到了,那么看在上帝份上,将其记录在这里!)

Microsoft 文档使用“映像”一词而不是“可执行文件”,因为前者也可以引用 DLL(共享库)。可能会引起混淆,因为i' in pei' 也指“图像”。‘pe’格式还可以创建映像(即可执行文件),只是要在win32系统上运行需要使用pei格式。”

来源 :

http://www.opensource.apple.com/source/gdb/gdb-1515/src/bfd/libpei.h


Erl*_*aff 4

PEI 实际上并不是官方认可的格式或术语。PE/COFF 标准仅描述两种格式:PE32(32 位格式)和 PE32+(64 位格式)。我以前听过关于 PE 与 PEI 的讨论,但我唯一遇到过 PEI 一词的地方是在JEdotlibpei的答案中引用的。而且,正如该答案中引用的那样,开发人员似乎对术语本身感到困惑,因此使用 PEI 一词确实没有任何意义。libpei

此外,在 Windows 上运行 PE 可执行文件需要 MS-DOS 存根的说法是不正确的。它通常是为了向后兼容而嵌入的。