什么是.exe文件?

所以.exe文件是一个可以被windows执行的文件,但是它包含了什么? 汇编语言是处理器特定的? 或者是某种被Windows识别的中间语句,将它变成针对特定处理器的汇编语言? 当“执行”文件时,windows对文件做了什么?

Solutions Collecting From Web of "什么是.exe文件?"

MSDN有一篇文章“ 深入研究Win32可移植可执行文件格式 ”,它描述了一个可执行文件的结构。

基本上,一个.exe文件包含了几个数据块和指令,说明如何将它们加载到内存中。 其中一些部分碰巧包含可以执行的机器代码(其他部分包含程序数据,资源,重定位信息,导入信息等)

我建议你得到一个Windows内部的副本,以全面描述当你运行一个exe文件时会发生什么。

对于本地可执行文件,机器代码是特定于平台的。 .exe的头文件指出了.exe的用途。

运行本地.exe时,会发生以下情况(严重简化):

  • 一个过程对象被创建。
  • 该exe文件被读入该进程的内存。 .exe(代码,数据等)的不同部分被分别映射并赋予不同的权限(代码是执行的,数据是可读写的,常量是只读的)。
  • 在.exe中发生重定位(如果.exe未在其首选地址加载,地址将被修补)。
  • 导入表已经走了,依赖的DLL被加载了。
  • DLL的映射类似于.exe的方法,重定位发生和它们的依赖DLL被加载。 从DLL中导入的函数被解析。
  • 该进程在NTDLL的初始存根中开始执行。
  • 初始加载程序存根运行每个DLL的入口点,然后跳转到.exe的入口点。

托管的可执行文件包含MSIL(Microsoft中间语言),并且可以进行编译,以便它们可以锁定CLR支持的任何CPU。 我不熟悉CLR加载器的内部工作原理(最初运行什么本机代码来引导CLR并开始解释MSIL) – 也许别人可以详细说明这一点。

我可以告诉你什么.exe文件的前两个字节包含 – 'MZ'。 我的意思是人物“MZ”。

它实际上代表:马克Zbikowski。 那个设计exe文件格式的家伙

http://en.wikipedia.org/wiki/Mark_Zbikowski

1和0的!

此维基百科链接将为您提供有关用于Windows应用程序的便携式可执行文件格式所需的所有信息。

一个EXE文件实际上是一种称为可移植可执行文件的文件类型。 它包含二进制数据,可以被处理器读取并执行(基本上是x86指令)。还有很多标题数据和其他杂项内容。 实际的可执行代码位于名为.text的段中,并作为机器指令(与处理器相关)存储。 这个代码(以及.EXE的其他部分)被放入内存,CPU被发送到它,它开始执行。 (请注意,实际上有更多的接口,这是一个简单的解释)。