pe文件

Windows操作系统上的程序文件
PE(Portable Executable)文件,即可移植执行文件,其格式是Windows可执行文件、对象代码和DLL所使用的标准格式。PE文件格式其实是一种数据结构,包含为Windows操作系统加载器管理可执行代码所必需的信息[1]
PE表示该文件格式是跨Win32平台的,即使Windows运行在非Intel的CPU上,任何Win32平台的PE装载器也能识别和使用该文件格式的文件。所有Win32执行体(除了VxD和16位DLL)都使用PE文件格式,如EXE文件、DLL文件等,包括NT的内核模式驱动程序(Kernel Mode Drivers)。PE文件至少含有两个段,即数据段和代码段。WindowsNT的应用程序有9个预定义的段,分别为:.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug段[2]

定义

一个操作系统的可执行文件格式在很多方面是这个系统的一面镜子。虽然学习一个可执行文件格式通常不是一个程序员的首要任务,但是你可以从这其中学到大量的知识。在这篇文章中,我会给出 Microsoft 的所有基于win32系统(如winnt,win9x)的可移植可执行(PE)文件格式的详细介绍。在可预知的未来,包括Windows2000, PE文件格式在 MicroSoft 的操作系统中扮演一个重要的角色。如果你在使用 Win32 或 Winnt ,那么你已经在使用 PE 文件了。甚至你只是在 Windows3.1 下使用 Visual C++编程,你使用的仍然是 PE 文件(Visual C++ 的 32 位MS-DOS扩展组件用这个格式)。简而言之,PE 格式已经普遍应用,并且在不短的将来仍是不可避免的。现在是时候找出这种新的可执行文件格式为操作系统带来的东西了。
线程局部变量