6

I understand that PE is a modified version of COFF, and that PE+ is a modified version of PE with 64 bit support, but what is PEI? Am I correct in saying there is no difference between PE and PEI, and they can be used interchangeably?

4

2 回答 2

4

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

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

资源 :

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

于 2015-01-08T21:10:30.487 回答
3

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

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

于 2015-04-06T15:49:54.363 回答