.exe和.pe文件之间的区别
本文关键字:区别 之间 文件 pe exe | 更新日期: 2023-09-27 18:22:11
编译visual studio c#应用程序时,将生成PE和EXE文件。那么PE和EXE文件的主要区别是什么呢?据我所知,PE文件包含
PE/COFF Headers,
CLR Headers,
CLR Data,
Meta Data,
IL code,
.data,.text...
而不是exe包含什么?。PE与EXE有何不同?
可移植可执行文件(PE)是包含操作系统正确加载可执行代码(.exe、.dll…)所需所有信息的文件
这可能包括用于链接、资源管理、TLS数据等的动态库引用。
可执行文件(.exe)是表示计算机程序的主要执行点的文件,也就是说,用C#术语来说,包含main函数或入口点的文件。
.exe文件是PE文件的子集,而PE文件包括.exe、.dll和.ocx文件。
因此,PE
代表可移植可执行文件,它是Windows 32位和64位环境中可执行二进制文件的格式。
据我所知,生成的PE
文件中的信息包括:
- 页眉
- Metadadata
- CLR数据段
但是,IL代码将在EXE
文件中,因为它应该是独立于平台的,并且在运行应用程序(Just-in time-compiler
)时将被编译为本机代码。PE
部分还负责CLR的初始化。
请记住,PE
部分可以在可执行文件中,这在大多数应用程序中更有意义。