Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows PE/COFF文件扩展名_Windows_File Extension_Portable Executable_Coff - Fatal编程技术网

Windows PE/COFF文件扩展名

Windows PE/COFF文件扩展名,windows,file-extension,portable-executable,coff,Windows,File Extension,Portable Executable,Coff,在Windows上,一些二进制文件,例如.obj是COFF格式,而另一些文件,例如.exe和.dll是PE,即带有额外头的COFF。您似乎需要查看文件扩展名,才能知道应该使用哪个扩展名 关于哪些文件扩展名使用COFF,哪些文件扩展名使用PE,有一个全面的列表吗?看看神奇的地方:由于它的MS-DOS传统,PE文件总是会启动MZ。请参阅的“MS-DOS标头”部分 MZ是DOS知道这是一个EXE文件而不是COM文件的原因-出于历史原因,一些Windows控制台模式实用程序具有.COM文件扩展名,但实际

在Windows上,一些二进制文件,例如
.obj
是COFF格式,而另一些文件,例如
.exe
.dll
是PE,即带有额外头的COFF。您似乎需要查看文件扩展名,才能知道应该使用哪个扩展名


关于哪些文件扩展名使用COFF,哪些文件扩展名使用PE,有一个全面的列表吗?

看看神奇的地方:由于它的MS-DOS传统,PE文件总是会启动
MZ
。请参阅的“MS-DOS标头”部分


MZ
是DOS知道这是一个EXE文件而不是COM文件的原因-出于历史原因,一些Windows控制台模式实用程序具有.COM文件扩展名,但实际上是PE格式的文件。

我无法评论,只能补充Mike Dimmick的答案。神奇的数字是linux上的可执行文件如何识别文件类型

扩展在windows中用于定义解析二进制文件的默认行为。这可能会变得混乱/危险,例如,如果程序A知道如何处理/解析多个文件类型(想想图像预览),那么一个文件可能具有一种类型的扩展名,并被解析为另一种类型。Windows将打开一个程序,向其提供文件。程序A将解析该文件,并且通常忽略扩展名来决定如何处理该文件

这可以用于社会工程(诱骗)用户打开“熟悉”的文件格式,但点击代码执行以获得更模糊的格式。

没有“使用COFF和PE的文件扩展名的综合列表”

扩展名仅用于帮助系统“映射”将用于启动选定文件的应用程序(例如,*.jpg将映射为由MSPAINT.exe启动,*.doc将映射为由MSWORD.exe启动…等等)。此逻辑映射是通过注册表进行的

该文件从未提及任何有关文件扩展名的内容

没有“综合清单”,根本没有清单,因为不需要这样的清单。PE文件是其内容与规范相对应的文件。句号(大卫·赫弗南在上面评论)

您有PDF扩展名的可执行文件(在恶意软件中非常常见),或TXT…或任何您想要的,甚至没有任何扩展名的文件!这些可执行文件的“不寻常”扩展当然会有“副作用”,您将无法双击这些文件。但是,您可以cmd>启动这些文件,或者使用许多API或shell函数以编程方式启动这些文件

由于系统能够独立于扩展启动可执行文件,因此解析根本没有问题


希望有帮助!:-)

WIN32之前的二进制文件使用COFF格式。文件扩展名没有任何意义。唯一重要的是文件中的内容。顺便说一句,一个文件以预期的魔术签名MZ开头的事实(当然)不能保证它是一个PE文件。
ZM
也曾是有效的IIRC,但WinNT不会接受它。