PE结构是什么意思?

PE结构是什么意思?,第1张

Windows PreInstallation Environment(Windows PE)直接从字面上翻译就是“Windows预安装环境”,微软在2002年7月22日发布,它的原文解释是:“Windows预安装环境(Windows PE)是带有限服务的最小Win32子系统,基于以保护模式运行的Windows XP Professional内核。它包括运行Windows安装程序及脚本、连接网络共享、自动化基本过程以及执行硬件验证所需的最小功能。”换句话说,你可把Windows PE看作是一个只拥有最少核心服务的Mini *** 作系统。微软推出这么一个 *** 作系统当然是因为它拥有与众不同的系统功能,如果要用一句话来解释,我认为与Win9X/2000/XP相比,Windows PE的主要不同点就是:它可以自定义制作自身的可启动副本,在保证你需要的核心服务的同时保持最小的 *** 作系统体积,同时它又是标准的32位视窗API的系统平台。当然,现在这么说也许难以理解,没有关系,下面让我们来仔细研究它。

Windows PE概览

即使有刚才的解释,你一定还是对这个全新概念的Mini *** 作系统一头雾水,没关系,在这里我将演示一下其运行的全过程,相信看过之后你或许就会有大致的了解。大多数人获得的Windows PE光碟(包括我手上这张ISO镜像光碟)应该是一张“Windows XP OPK”CD,意思就是Windows XP OEM预安装工具包CD。实际上,Windows XP OPK CD是Windows PE 32位版本的一个可引导副本,也就是说,这张CD已经是个用Windows PE定义制作的 *** 作系统了,我们可直接用它来引导系统。先看看这张CD的目录结构吧,总共有352MB,是不是有些大呢?其实由于这是个副本(至少包含了不少驱动程序),大小是由当时自定义制作决定的,若是Windows PE的32位非自定义版本,其在磁盘上的镜像大约为120MB。(转贴)

PE 的意思就是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行体文件格式。它的一些特性继承自 Unix的 Coff (common object file format)文件格式。"portable executable"(可移植的执行体)意味着此文件格式是跨win32平台的 : 即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。当然,移植到不同的CPU上PE执行体必然得有一些改变。所有 win32执行体 (除了VxD和16位的Dll)都使用PE文件格式,包括NT的内核模式驱动程序(kernel mode drivers)。

 Windows *** 作系统家族增加的Windows NT为开发环境和应用程序本身带来了很大的改变,这之中一个最为重大的当属PE文件格式了。新的PE文件格式主要来自于UNIX *** 作系统所通用的COFF 规范,同时为了保证与旧版本MS-DOS及Windows *** 作系统的兼容,PE文件格式也保留了MS-DOS中那熟悉的MZ头部。

在Windows下,程序和库都是PE(Portable Excutable)格式文件,可以被内存映射到一个进程中。

加载一个Windows可执行程序或者DLL与加载一个动态链接的ELF程序相似,尽管在Windows下动态链接器是 *** 作系统内核的一部分。

PE文件可以包含有重定位项。通常一个可执行程序不会包含可重定位项,因此必须将它们映射到在链接时确定的地址上。DLL都包含有重定位项,并且在它们被链接进来的地址空间无效的时候都会被重定位(微软将运行时重定位称为rebasing)。

所有的PE文件,包括可执行程序和DLL,都有一个入口点,在DLL被加载、被卸载,以及每一次进程的线程attach或deattach这个DLL的时候,加载器都会调用DLL的入口点(每一次加载器都会传递一个参数说明调用原因)。这就可以提供类似ELF的.init和.fini区段的钩子代码来实现初始化和终结 *** 作。

简而言之,PE头就是windows中特有的可执行文件头.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8155635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存