PE教程
- 格式:doc
- 大小:144.50 KB
- 文档页数:48
pe装系统教程PE装系统教程在进行PE装系统之前,首先需要准备以下材料:1. 可以安装PE系统的U盘或者光盘。
2. 笔记本或者台式机电脑。
3. 操作系统的安装光盘或者镜像文件。
接下来,按照以下步骤进行PE装系统:第一步,制作PE启动盘。
1. 将U盘或者光盘插入电脑。
2. 打开PE制作工具,选择制作U盘或者光盘启动盘。
3. 如果选择制作U盘启动盘,选择U盘并格式化,然后根据提示进行制作。
4. 如果选择制作光盘启动盘,选择光盘并刻录PE镜像文件。
第二步,设置电脑启动菜单。
1. 关机后,插入制作好的PE启动盘。
2. 打开电脑并按下开机键。
3. 在开机过程中按下相应的快捷键(一般为F2、F10、F12等),进入BIOS设置界面。
4. 在BIOS设置界面中找到“启动顺序”或“Boot”的选项。
5. 将PE启动盘移动到启动顺序的首位。
6. 保存设置并退出BIOS。
第三步,启动电脑进入PE系统。
1. 开机后,电脑会自动从PE启动盘启动。
2. 在PE系统加载完毕后,进入PE桌面。
3. 确认PE系统可以完整地运行,包括显示器、鼠标、键盘等设备。
4. 如果需要安装操作系统,将操作系统的安装光盘或者镜像文件插入电脑。
第四步,进行系统安装。
1. 打开安装光盘或者镜像文件所在的文件夹。
2. 运行安装程序,按照提示进行系统安装。
3. 在系统安装过程中,根据个人需求进行相关设置。
4. 等待系统安装完成,电脑将会自动重启。
第五步,完成系统安装。
1. 等待电脑重启后,选择启动项进入新安装的操作系统。
2. 按照系统提示进行后续设置。
3. 安装驱动程序以保证硬件设备正常工作。
4. 安装所需的软件和应用,进行个人设置。
通过以上步骤,你可以成功地使用PE系统装载操作系统,实现系统的重装和更新。
请注意,在进行PE装系统的过程中,确保备份重要数据,以免数据丢失。
此外,操作过程中如有疑问,可以参考相关教程或者寻求专业人士的帮助。
pe启动盘使用教程PE启动盘使用教程PE(Preinstallation Environment)启动盘是一种便携式系统,可以在计算机无法正常启动时提供一个操作系统环境,方便用户进行故障排查、数据恢复等操作。
下面将简单介绍如何制作和使用PE启动盘。
一、制作PE启动盘1. 准备工作- 一台正常运行的计算机- 一个U盘或光盘- PE启动盘制作工具(如EasyBCD、Rufus等)- PE系统镜像文件(可以从官方渠道下载)2. 制作过程1) 将U盘或插入光盘到计算机中,并确保U盘没有重要文件,因为所有数据将会被格式化。
2) 将PE系统镜像文件解压缩到计算机的一个目录中,如C:\PE。
3) 运行PE启动盘制作工具,并选择制作U盘或光盘的方式,将PE系统镜像文件拷贝到U盘或光盘中。
4) 点击开始制作按钮,等待制作过程完成。
二、使用PE启动盘1. 设置计算机启动方式1) 将制作好的PE启动盘插入需要操作的计算机中。
2) 开机时按下计算机厂商指定的按键(如F12、F2等)进入BIOS设置。
3) 在BIOS设置中将启动顺序设置为从U盘或光盘启动。
2. PE系统操作1) 重新启动计算机,使用PE启动盘启动计算机。
2) PE系统启动后,会出现一个简易的操作界面,可以选择不同的工具进行操作。
常见的操作包括故障排查、数据恢复、系统修复等。
3) 操作界面上通常会有文件管理器、命令提示符等工具,可以根据自己的需要执行相应的操作,比如复制文件、格式化硬盘等。
4) 使用PE启动盘操作完成后,可以重新启动计算机,并在BIOS设置中将启动顺序恢复为正常的硬盘启动。
三、注意事项1. PE启动盘制作时要选择正确的PE系统镜像文件,以免造成系统不兼容的问题。
2. 制作PE启动盘时需要格式化U盘或光盘,确保重要数据已备份。
3. 使用PE启动盘时要小心操作,避免误操作导致数据丢失或系统损坏。
4. PE启动盘并不是解决所有问题的万能工具,有些故障需要专业的维修人员来处理。
安装pe到硬盘安装方法1. 简介PE(Preinstallation Environment)是一种轻量级的操作系统环境,用于恢复系统、诊断问题以及进行硬盘分区等操作。
在实际的计算环境中,我们经常使用PE来解决各种系统问题。
而将PE安装到硬盘上,则可以更方便地使用PE,并节省U盘或光盘的使用。
本文将介绍如何安装PE到硬盘的方法,以供参考和使用。
2. 准备工作在开始安装PE到硬盘之前,我们需要准备以下工作:- PE镜像文件:可以从互联网上下载一个PE镜像文件,比如基于Windows PE的WinPE系统镜像。
- 硬盘分区:将要安装PE的硬盘需要进行分区,至少需要一个分区作为PE的安装目标。
- 硬盘格式化工具:我们需要使用一款硬盘格式化工具来格式化硬盘,并准备好PE系统的安装环境。
3. 安装步骤3.1 下载PE镜像文件首先,打开浏览器,搜索并下载一个PE镜像文件。
常见的PE镜像文件有基于Windows PE的WinPE系统镜像,可以根据自己的需求选择。
3.2 准备硬盘分区在开始安装PE之前,我们需要对硬盘进行分区。
请注意,分区操作会删除硬盘上的所有数据,请备份好重要的文件。
可以使用Windows的磁盘管理工具或第三方磁盘分区工具进行分区操作。
将硬盘分为两个分区,一个用于安装PE系统,一个用于存储数据。
选择适当的分区大小,并确保分区类型为NTFS。
3.3 格式化硬盘分区在分区完成之后,我们需要使用一款硬盘格式化工具对目标分区进行格式化。
打开格式化工具,选择目标分区,并选择NTFS文件系统进行格式化。
保留默认设置,开始格式化。
3.4 安装PE到硬盘分区安装PE到硬盘需要使用PE安装工具。
一般情况下,PE镜像文件中会包含相应的安装工具。
将PE镜像文件解压缩到一临时目录中。
然后,进入临时目录,找到安装工具的可执行文件。
右键点击该文件,选择“以管理员身份运行”。
安装工具会弹出一个界面,选择硬盘分区作为PE系统的安装目标。
pe装系统教程图PE装系统教程图PE(Pre-installation Environment,预安装环境)是一种操作系统环境,通常被用于系统修复、数据恢复以及系统安装等操作。
下面是一个PE装系统的教程图文指导,共500字。
步骤一:准备工作1. 确保你已经有一个PE镜像文件,可以通过官方网站下载,或使用其他可靠来源获取。
2. 准备一个U盘,容量至少为4GB,用于制作PE启动盘。
3. 将U盘插入计算机,确保U盘的内容已经备份,因为在制作PE启动盘过程中,U盘中的所有数据将会被清除。
步骤二:制作PE启动盘1. 双击打开“PE启动盘制作工具”,该工具通常是一个绿色小巧的软件。
2. 在工具界面中,选择U盘所对应的盘符,确保选择正确的盘符,以免清除了其他重要数据。
3. 在制作过程中,工具会提示是否格式化U盘,点击“是”以继续。
4. 接下来,工具会开始制作PE启动盘,制作过程可能需要几分钟时间,请耐心等待。
5. 制作完成后,工具会弹出提示,确认制作完成后,点击“完成”。
步骤三:使用PE启动盘安装系统1. 将制作好的PE启动盘插入需要安装系统的计算机。
2. 开机时按下计算机快捷键(通常是F2、F12、Esc等),进入BIOS设置。
3. 在BIOS中找到“启动顺序”或类似选项,将启动顺序设置为U盘。
4. 保存设置后,退出BIOS,计算机将会从PE启动盘启动。
5. PE启动后,进入PE桌面,找到并打开PE装系统的工具(通常是“WinPE装机助手”或其他类似工具)。
6. 在PE装系统工具中,选择你想要安装的系统版本,点击“下一步”。
7. 在下一步中,选择系统安装的目标磁盘,点击“下一步”。
8. 根据提示选择分区方案,并点击“下一步”。
9. 系统将开始安装,安装过程可能需要一些时间,待安装完成后,系统将会自动重启。
10. 在重启后,按照系统提示完成一些初始设置,如设置用户名、密码等。
11. 最后,系统将会进入桌面界面,表示PE装系统成功完成。
pe操作流程PE操作流程。
PE操作是一种常见的计算机操作,它可以帮助用户修改程序的可执行文件,实现一些特定的功能。
在进行PE操作之前,我们需要先了解PE文件的结构和一些基本概念,然后才能进行具体的操作。
接下来,我将为大家介绍PE操作的具体流程。
第一步,准备工作。
在进行PE操作之前,我们需要准备一个PE编辑器,比如常用的PE Explorer、CFF Explorer等软件。
同时,我们还需要准备一个需要进行PE操作的程序文件,比如.exe文件。
在准备工作完成之后,我们就可以开始进行PE操作了。
第二步,打开程序文件。
首先,我们需要打开需要进行PE操作的程序文件,可以直接在PE编辑器中打开该文件,或者通过“文件”菜单中的“打开”选项进行操作。
一旦程序文件被打开,我们就可以看到该文件的PE结构和相关信息。
第三步,查看PE结构。
在打开程序文件后,我们可以查看该文件的PE结构,包括文件头、节表、导入表、导出表等信息。
通过查看PE结构,我们可以了解程序文件的组织结构和各个部分的作用,为后续的PE操作提供必要的信息。
第四步,进行PE操作。
接下来,我们可以根据实际需求进行具体的PE操作,比如修改程序的版本信息、修改程序的图标、修改程序的资源等。
在进行PE操作时,我们需要注意保留程序文件的完整性,避免对程序文件造成损坏或不可用的情况。
第五步,保存修改。
在完成PE操作后,我们需要及时保存对程序文件的修改。
可以通过“文件”菜单中的“保存”或“另存为”选项来保存修改后的程序文件。
在保存修改时,我们需要确认所做的修改是否符合预期,避免出现不必要的错误。
第六步,测试程序文件。
最后,我们需要对修改后的程序文件进行测试,确保程序文件的功能和效果符合预期。
可以通过运行程序文件或者使用相关工具进行测试,验证所做的PE操作是否达到了预期的效果。
总结。
通过以上的PE操作流程,我们可以实现对程序文件的修改和定制,满足特定的需求。
在进行PE操作时,我们需要谨慎操作,确保对程序文件的修改是准确、合理的,避免对程序文件造成不必要的损坏。
原版Win7系统安装教程(超详细图文版)前期准备:1.原版Win7系统ISO镜像文件2.启动U盘或系统光盘(里面均带有PE系统)操作步骤:第1步:把原版系统ISO镜像文件下载好并放置在U盘或硬盘通过开机启动热键并选择对应启动项,启动U盘或系统光盘启动进入PE系统。
第2步:打开“虚拟光驱”(不用单独下载虚拟光驱,一般PE系统中均带有)注:部分PE是从开始菜单中打开的(如下图),所以请根据你所使用的PE定第3步:在虚拟光驱中“加载”原版系统ISO镜像文件浏览找到你下载好的原版系统ISO镜像文件盘符默认分配为A,然后点“确定”第4步:打开“Windows安装器”,一般PE里均带有此工具(为了使安装成功率更高,本教程采用Windows安装器来安装原版系统)注:部分PE是从开始菜单中打开的(如下图),所以请根据你所使用的PE定Windows安装器主界面,根据你所需要安装系统选择第几个,本教程安装Win7,所以选择第二个第5步:点“浏览”,在A盘中找到刚才虚拟光驱加载的文件,如果下图:第6步:点开“sources”文件中的“install.wim”文件(不能选择错)第7步:选择要安装的系统的版本,如:选择安装Win7 旗舰版第8步:选择把系统安装到“C盘”(你要安装的盘),然后会提示:请先格式化C盘的格式化C盘格式化C盘完成后,依次点下图两个选项,再点“下一步”此步不需要操作,直接点“下一步”第9步:选择系统盘符,打上第一个前面的勾即可第10步:最后确定安装信息,点“安装系统”后开始安装请耐心等待系统部署到100%……第10步:点“确定”选择重启,如不能自动重启请手动重启一下即可第11步:重启进入系统安装过程,请耐心等待即可第12步:选择地区和键盘布局第13步:设置系统用户名(必填)第14步:用户密码,建议为空第15步:激活密钥,建议为空,待系统安装完后再激活此步如下图勾选此步可任意选择第16步:设置系统时区和时间,时间会自动与网络时间同步,直接点“下一步”即可第17步:选择网络类型,根据需要选择即可至此,原版系统安装完成!恭喜你!你已学会安装原版系统了!很多人认为的纯净版就是桌面只有一个回收站的,其实是原版系统才只有一个回收站!微软没有系统命名纯净版的,请知悉!如果你需要,你还可以进行如下设置:显示用户文件、计算机、网络图标激活你的新系统:请自行百度如何激活开启最高管理员(Administrator)帐户:行库支持文件!。
pe安装系统教程P.E.安装系统的教程步骤1:准备工作首先,确保你有一份最新的P.E.安装系统文件。
你可以从官方网站或其他可靠的来源下载到这个文件。
然后,你需要一张空白的U盘或者DVD光盘,以便将P.E.安装系统文件写入其中。
最后,在进行安装之前,一定要备份你重要的文件和数据,以防万一发生任何数据丢失或损坏的情况。
步骤2:创建可启动的P.E.设备将你的U盘或者DVD插入电脑。
确保电脑能够识别到这个设备。
打开磁盘格式化工具,格式化U盘或者刻录光盘,将其设为可启动状态。
然后,将P.E.安装系统文件复制到可启动设备中,并确保这些文件没有被放置在任何有标题的文件夹内。
步骤3:设置电脑引导顺序按下电脑开机键后,立即按下启动菜单键(通常是F12或者Esc键,具体取决于你的电脑型号)。
在启动菜单中,选择以U盘或者DVD光盘为引导设备,这样你的电脑就会从P.E.设备启动。
步骤4:安装P.E.系统一旦你的电脑从P.E.设备启动,系统会加载P.E.安装系统文件。
按照屏幕上的说明进行安装,根据你的个人偏好和需求进行配置。
如果需要,选择安装分区和格式化选项,并选择你想要安装的目标驱动器。
等待安装过程完成,并根据提示重启你的电脑。
步骤5:完成安装一旦你的电脑重新启动,它就会从新安装的P.E.系统启动。
按照屏幕上的进一步指示完成系统的最后设置和配置。
在完成设置后,你就可以开始使用全新的P.E.操作系统了。
请注意:这个教程仅供参考,具体的安装步骤可能会根据你使用的P.E.安装系统版本有所不同。
在安装之前,请务必阅读相关的文档和指南。
PE系统重装系统教程
一、准备工作
在进行PE系统重装系统之前,需要做好充分的准备工作,包括但不限于:
1.备份数据:确保U盘内的重要数据已经备份,以免在制作PE启动盘过程中造成数
据丢失。
2.下载PE工具:选择一款可靠的PE工具,如微PE工具箱,并下载到U盘。
3.下载系统镜像:从MSDN或其他官方渠道下载所需的Windows系统镜像文件,并保
存到U盘中。
二、制作PE启动盘
制作PE启动盘的步骤通常包括:
1.将U盘插入电脑,使用PE工具箱进行格式化和写入PE系统到U盘。
2.设置BIOS中的启动顺序,确保U盘为首选启动设备。
3.重启电脑,通过U盘启动进入PE系统。
三、PE系统中安装系统
在PE环境中安装系统的步骤包括:
1.使用PE系统中的分区工具对硬盘进行分区。
2.使用一键装机工具选择系统镜像文件并进行安装。
3.根据提示完成系统安装,并在重启后进入新安装的系统。
四、常见问题和解决方法
在使用PE系统重装系统过程中可能会遇到的常见问题及其解决方法包括:
1.如果系统安装过程中出现蓝屏或死机,可能是硬件问题导致的,需要检查硬件连接
或更换硬件。
2.如果在安装过程中出现文件错误,可以尝试更换镜像文件或重新下载系统镜像。
3.如果在安装完成后发现某些驱动没有自动安装好,可以前往官方网站下载相应的驱
动程序。
五、结语
通过上述步骤,即使在面对电脑无法正常启动的情况下,也能够利用PE系统有效地重装系统,恢复数据,并确保电脑稳定高效地运行。
需要注意的是,在整个过程中,务必谨慎操作,避免数据丢失。
pe装系统教程
教你如何安装操作系统
步骤一: 准备工作
1. 根据你的操作系统需求,选择合适的安装介质,例如光盘、USB驱动器或者下载的镜像文件。
2. 确保你的电脑满足操作系统的最低硬件要求,并备份重要数据,因为系统安装可能会导致数据丢失。
步骤二: 设置启动顺序
1. 将安装介质插入电脑,并重启电脑。
2. 进入BIOS设置界面,在"Boot"或"启动"选项中,将启动顺序设置为首选从安装介质启动。
步骤三: 开始安装
1. 电脑启动后,按照屏幕上的指示进行安装。
通常情况下,你需要选择安装语言、时区,以及接受授权协议。
2. 接下来,选择安装位置。
如果你想要将操作系统安装在特定的分区,选择对应的分区,或者选择在整个硬盘上进行全新安装。
3. 系统会开始复制文件并进行安装。
这个过程可能需要一些时间,请耐心等待。
步骤四: 完成设置
1. 安装完成后,你需要设置一些基本参数,例如计算机名称、网络设置等。
2. 根据需要,创建一个用户账号并设置密码。
步骤五: 更新和驱动安装
1. 安装完成后,重启电脑,并连接到网络。
2. 打开系统设置,更新操作系统以获取最新的补丁和安全更新。
3. 安装硬件驱动程序,以确保系统可以正常工作。
你可以从硬件制造商的官方网站下载最新的驱动程序。
以上就是安装操作系统的基本步骤。
请注意,在进行任何操作系统安装之前,请阅读相应的安装指南或联系专业人士进行咨询。
pe分区教程PE分区是一款非常实用的磁盘分区工具,可以帮助用户合理地管理硬盘空间和数据,提高磁盘利用率和计算机性能。
下面将详细介绍PE分区的操作步骤和技巧。
首先,我们需要准备一个PE系统,可以通过下载PE系统的ISO文件并使用U盘制作成PE启动盘的方式获得。
制作PE 启动盘的方法很简单,只需将ISO文件使用专业的制作工具写入U盘即可。
接下来,我们需要将制作好的PE启动盘插入计算机,并通过BIOS设置让计算机从U盘启动。
进入PE系统后,选择进入PE分区工具,通常可以在桌面或者开始菜单中找到这个工具的图标。
一般而言,初次使用PE分区的用户需要先对硬盘进行分区操作。
首先,选择要进行分区的硬盘,然后点击“新建分区”的按钮。
接着,在弹出的对话框中选择分区类型、大小以及分区标签等信息。
按照自己的需求进行设置后,点击“确定”按钮完成分区操作。
分区操作完成后,我们可以对每个分区进行格式化。
选中一个分区后,点击“格式化”按钮,选择文件系统类型和是否快速格式化等选项,然后点击“确定”按钮即可开始格式化。
在分区和格式化完成后,我们可以对分区进行各种操作,如调整分区大小、删除分区、合并分区、调整分区位置等。
这些操作可以通过选中对应分区后,点击相应的按钮来实现。
值得注意的是,在进行上述操作之前,一定要先备份重要的数据,以免因为操作失误而导致数据丢失。
除了基本的分区操作,PE分区还具有一些高级功能,比如修复分区表、恢复分区、隐藏分区等。
这些功能可以帮助用户解决一些特殊情况下的问题,比如误操作导致分区丢失或损坏等。
总之,PE分区是一款功能强大的磁盘分区工具,能够帮助用户合理管理硬盘空间和数据,提高计算机性能。
通过本文的介绍,我们可以了解到PE分区的基本操作步骤和一些常用技巧,希望对大家有所帮助。
PE文件格式一览考虑到早期写的PE教程1是自己所有教程中最糟糕的一篇,此番决心彻底重写一篇以飨读者。
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)。
因而研究PE文件格式给了我们洞悉Windows结构的良机。
本教程就让我们浏览一下PE文件格式的概要。
DOS MZ headerDOS stubPE headerSection tableSection 1Section 2Section ...Section n上是PE文件结构的总体层次分布。
所有PE文件(甚至32位的DLLs) 必须以一个简单的DOS MZ header 开始。
我们通常对此结构没有太大兴趣。
有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,然后运行紧随MZ header 之后的DOS stub。
DOS stub实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串"This program requires Windows" 或者程序员可根据自己的意图实现完整的DOS代码。
通常我们也不对DOS stub 太感兴趣: 因为大多数情况下它是由汇编器/编译器自动生成。
通常,它简单调用中断21h服务9来显示字符串"This pro gram cannot run in DOS mode"。
紧接着DOS stub 的是PE header。
PE header 是PE相关结构IMAGE_NT_HEADE RS 的简称,其中包含了许多PE装载器用到的重要域。
当我们更加深入研究PE文件格式后,将对这些重要域耳目能详。
执行体在支持PE文件结构的操作系统中执行时,PE装载器将从DOS MZ header 中找到PE header 的起始偏移量。
因而跳过了DOS stub 直接定位到真正的文件头PE header。
PE文件的真正内容划分成块,称之为sections(节)。
每节是一块拥有共同属性的数据,比如代码/数据、读/写等。
我们可以把PE文件想象成一逻辑磁盘,PE header 是磁盘的b oot扇区,而sections就是各种文件,每种文件自然就有不同属性如只读、系统、隐藏、文档等等。
值得我们注意的是---- 节的划分是基于各组数据的共同属性: 而不是逻辑概念。
重要的不是数据/代码是如何使用的,如果PE文件中的数据/代码拥有相同属性,它们就能被归入同一节中。
不必关心节中类似于"data", "code"或其他的逻辑概念: 如果数据和代码拥有相同属性,它们就可以被归入同一个节中。
(译者注:节名称仅仅是个区别不同节的符号而已,类似"data", "code"的命名只为了便于识别,惟有节的属性设置决定了节的特性和功能)如果某块数据想付为只读属性,就可以将该块数据放入置为只读的节中,当PE装载器映射节内容时,它会检查相关节属性并置对应内存块为指定属性。
如果我们将PE文件格式视为一逻辑磁盘,PE header是boot扇区而sections是各种文件,但我们仍缺乏足够信息来定位磁盘上的不同文件,譬如,什么是PE文件格式中等价于目录的东东?别急,那就是PE header 接下来的数组结构section table(节表)。
每个结构包含对应节的属性、文件偏移量、虚拟偏移量等。
如果PE文件里有5个节,那么此结构数组内就有5个成员。
因此,我们便可以把节表视为逻辑磁盘中的根目录,每个数组成员等价于根目录中目录项。
以上就是PE文件格式的物理分布,下面将总结一下装载一PE文件的主要步骤:1. 当PE文件被执行,PE装载器检查DOS MZ header 里的PE header 偏移量。
如果找到,则跳转到PE header。
2. PE装载器检查PE header 的有效性。
如果有效,就跳转到PE header的尾部。
3. 紧跟PE header 的是节表。
PE装载器读取其中的节信息,并采用文件映射方法将这些节映射到内存,同时付上节表里指定的节属性。
4. PE文件映射入内存后,PE装载器将处理PE文件中类似import table(引入表)逻辑部分。
上述步骤是基于本人观察后的简述,显然还有一些不够精确的地方,但基本明晰了执行体被处理的过程。
你应该下载LUEVELSMEYER的《PE文件格式》。
该文的描述相当详细,可用作案头的参考手册。
检验PE文件的有效性本教程中我们将学习如何检测给定文件是一有效PE文件。
下载范例理论:如何才能校验指定文件是否为一有效PE文件呢? 这个问题很难回答,完全取决于想要的精准程度。
您可以检验PE文件格式里的各个数据结构,或者仅校验一些关键数据结构。
大多数情况下,没有必要校验文件里的每一个数据结构,只要一些关键数据结构有效,我们就认为是有效的PE文件了。
下面我们就来实现前面的假设。
我们要验证的重要数据结构就是PE header。
从编程角度看,PE header 实际就是一个IMAGE_NT_HEADERS 结构。
定义如下:IMAGE_NT_HEADERS STRUCTSignature dd ?FileHeader IMAGE_FILE_HEADER <>OptionalHeader IMAGE_OPTIONAL_HEADER32 <>IMAGE_NT_HEADERS ENDSSignature 一dword类型,值为50h, 45h, 00h, 00h(PE\0\0)。
本域为PE标记,我们可以此识别给定文件是否为有效PE文件。
FileHeader 该结构域包含了关于PE文件物理分布的信息,比如节数目、文件执行机器等。
OptionalHeader 该结构域包含了关于PE文件逻辑分布的信息,虽然域名有"可选"字样,但实际上本结构总是存在的。
我们目的很明确。
如果IMAGE_NT_HEADERS的signature域值等于"PE\0\0",那么就是有效的PE文件。
实际上,为了比较方便,Microsoft已定义了常量IMAGE_NT_SIGNATURE 供我们使用。
IMAGE_DOS_SIGNA TURE equ 5A4DhIMAGE_OS2_SIGNA TURE equ 454EhIMAGE_OS2_SIGNA TURE_LE equ 454ChIMAGE_VXD_SIGNA TURE equ 454ChIMAGE_NT_SIGNA TURE equ 4550h接下来的问题是: 如何定位PE header? 答案很简单: DOS MZ header 已经包含了指向PE header 的文件偏移量。
DOS MZ header 又定义成结构IMAGE_DOS_HEADER 。
查询windows.inc,我们知道IMAGE_DOS_HEADER 结构的e_lfanew成员就是指向PE header 的文件偏移量。
现在将所有步骤总结如下:1. 首先检验文件头部第一个字的值是否等于IMAGE_DOS_SIGNATURE,是则DOS MZ header 有效。
2. 一旦证明文件的DOS header 有效后,就可用e_lfanew来定位PE header 了。
3. 比较PE header 的第一个字的值是否等于IMAGE_NT_HEADER。
如果前后两个值都匹配,那我们就认为该文件是一个有效的PE文件。
Example:.386.model flat,stdcalloption casemap:noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude \masm32\include\comdlg32.incinclude \masm32\include\user32.incincludelib \masm32\lib\user32.libincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\comdlg32.libSEH structPrevLink dd ? ; the address of the previous seh structureCurrentHandler dd ? ; the address of the exception handlerSafeOffset dd ? ; The offset where it's safe to continue executionPrevEsp dd ? ; the old value in espPrevEbp dd ? ; The old value in ebpSEH ends.dataAppName db "PE tutorial no.2",0ofn OPENFILENAME <>FilterString db "Executable Files (*.exe, *.dll)",0,"*.exe;*.dll",0db "All Files",0,"*.*",0,0FileOpenError db "Cannot open the file for reading",0FileOpenMappingError db "Cannot open the file for memory mapping",0FileMappingError db "Cannot map the file into memory",0FileValidPE db "This file is a valid PE",0FileInValidPE db "This file is not a valid PE",0.data?buffer db 512 dup(?)hFile dd ?hMapping dd ?pMapping dd ?ValidPE dd ?.codestart procLOCAL seh:SEHmov ofn.lStructSize,SIZEOF ofnmov ofn.lpstrFilter, OFFSET FilterStringmov ofn.lpstrFile, OFFSET buffermov ofn.nMaxFile,512mov ofn.Flags, OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_LONGNAMES or OFN_EXPLORER or OFN_HIDEREADONL Yinvoke GetOpenFileName, ADDR ofn.if eax==TRUEinvoke CreateFile, addr buffer, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL.if eax!=INVALID_HANDLE_V ALUEmov hFile, eaxinvoke CreateFileMapping, hFile, NULL, PAGE_READONL Y,0,0,0.if eax!=NULLmov hMapping, eaxinvoke MapViewOfFile,hMapping,FILE_MAP_READ,0,0,0.if eax!=NULLmov pMapping,eaxassume fs:nothingpush fs:[0]pop seh.PrevLinkmov seh.CurrentHandler,offset SEHHandlermov seh.SafeOffset,offset FinalExitlea eax,sehmov fs:[0], eaxmov seh.PrevEsp,espmov seh.PrevEbp,ebpmov edi, pMappingassume edi:ptr IMAGE_DOS_HEADER.if [edi].e_magic==IMAGE_DOS_SIGNATUREadd edi, [edi].e_lfanewassume edi:ptr IMAGE_NT_HEADERS.if [edi].Signature==IMAGE_NT_SIGNATUREmov ValidPE, TRUE.elsemov ValidPE, FALSE.endif.elsemov ValidPE,FALSE.endifFinalExit:.if ValidPE==TRUEinvoke MessageBox, 0, addr FileValidPE, addr AppName, MB_OK+MB_ICONINFORMATION.elseinvoke MessageBox, 0, addr FileInValidPE, addr AppName, MB_OK+MB_ICONINFORMATION.endifpush seh.PrevLinkpop fs:[0]invoke UnmapViewOfFile, pMapping.elseinvoke MessageBox, 0, addr FileMappingError, addr AppName, MB_OK+MB_ICONERROR.endifinvoke CloseHandle,hMapping.elseinvoke MessageBox, 0, addr FileOpenMappingError, addr AppName, MB_OK+MB_ICONERROR.endifinvoke CloseHandle, hFile.elseinvoke MessageBox, 0, addr FileOpenError, addr AppName, MB_OK+MB_ICONERROR.endif.endifinvoke ExitProcess, 0start endpSEHHandler proc uses edx pExcept:DWORD, pFrame:DWORD, pContext:DWORD, pDispatch:DWORDmov edx,pFrameassume edx:ptr SEHmov eax,pContextassume eax:ptr CONTEXTpush [edx].SafeOffsetpop [eax].regEippush [edx].PrevEsppop [eax].regEsppush [edx].PrevEbppop [eax].regEbpmov ValidPE, FALSEmov eax,ExceptionContinueExecutionretSEHHandler endpend start分析:本例程打开一文件,先检验DOS header是否有效,有效就接着检验PE header的有效性,ok 就认为是有效的PE文件了。