U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 土豆PE使用教程 >

pe 文件入口(pe如何备份文件)

来源:http://www.tudoupe.com时间:2023-04-20

如何修改PE文件

一、        Windows加载器 加载器读取一个PE文件的过程如下: 1. 先读入PE文件的DOS头,PE头和Section头。 2. 然后根据PE头里的ImageBase所定义的加载地址是否可用,如果已被其他模块占用,则重新分配一块空间。 3. 根据Section头部的信息,把文件的各个Section映射到分配的空间,并根据各个Section定义的数据来修改所映射的页的属性。 4. 如果文件被加载的地址不是ImageBase定义的地址,则重新修正ImageBase。 5. 根据PE文件的输入表加载所需要的DLL到进程空间。 6. 然后替换IAT表内的数据为实际调用函数的地址。 7. 根据PE头内的数据生成初始化的堆和栈。 8. 创建初始化线程,开始运行进程。 这里要提的是加载PE文件所需DLL的过程是建立在六个底层的API上。 LdrpCheckForLoadedDll:检查要加载的模块是否已经存在。 LdrpMapDll:映射模块和所需信息到内存。 LdrpWalkImportDescriptor:遍历模块的输入表来加载其所需的其他模块。 LdrpUpdateLoadCount:计数模块的使用次数。 LdrpRunInitializeRoutines:初始化模块。 LdrpClearLoadInProgress:清楚某些标志,表明加载已经完成。 二、        插入代码到PE文件 有三种方式可以插入代码到PE文件: 1. 把代码加入到一个存在的Section的未用空间里。 2. 扩大一个存在的Section,然后把代码加入。 3. 新增一个Section。 方法一、增加代码到一个存在的Section。 首先我们需要找到一个被映射到一个块有执行权限的Section。最简单的方式就是直接利用CODE Section。 然后我们需要查找这块Section内的多余空间(也就是填满了00h)。我们知道一个Section有两个数据来表示其大小。VirtualSize和SizeOfRawData。这个VirtualSize代表Section里代码实际所占用的磁盘空间。SizeOfRawData代表根据磁盘对齐后所占的空间。通常SizeofRawData都会比VirtualSize要大。如下图。 图中的SizeOfRawData是0002A000,而VirtualSize是00029E88。当PE文件被加载到内存的时候,他们之间的多余空间的数据是不会被加载到内存去。那么如果要把加入到这个间隙中间的代码也被加载到内存去,就需要修改VirtualSize的值,这里把VirtualSize的值可以改为00029FFF。这样,我们就有了一小段空间加入自己的代码。下面需要做的就是先找到PE文件的入口点OriginalEntryPoint,比如这个OriginalEntryPoint是0002ADB4,ImageBase是400000,那么入口点的实际虚拟地址是0042ADB4。然后计算出自己代码的起始RVA,更换掉PE头内的OriginalEntryPoint,在自己的代码最后加上: MOV EAX,00042ADB4 JMP EAX 这样就可以在PE文件被加载的时候,先运行自己的代码,然后再运行PE文件本身的代码。成功的把代码加入到了PE文件内。 方法二、扩大一个存在的Section来加入代码。 如果在一个Section末尾没有足够的空间存放自己的代码,那么另外一种方法就是扩大一个存在的Section。一般我们只扩大PE文件最尾部的Section,因为这样可以避免很多问题,比如对其他Section的影响。 首先我们的找到最后一个Section使之可读可执行。这可以通过修改其对应Section头部的Characteristics来获得。然后根据PE头内文件对齐的大小,修改其SizeOfRawData。比如文件对齐的大小是200h,原先SizeOfRawData=00008000h, 那么我们增加的空间大小应该是200h的整数倍,修改完的SizeOfRawData至少是00008200h。增加完空间后,需要修改PE头内的两个字段的数值,SizeOfCode和SizeOfInitialishedData。分别为它们增加200h的大小。这样我们就成功的扩大了一个Section,然后根据方法一内的方式把代码加入到增加的空间。 方法三、新增一个Section来加入代码。 如果要加入的代码很多,那么就需要新增一个Section来存放自己的代码。 l         首先,我们需要在PE头内找到NumberOfSections,使之加1。 l         然后,在文件末尾增加一个新的空间,假设为200h,记住起始行到PE文件首部的偏移。假如这个值是00034500h。同时将PE头内的SizeOfImage的值加200h。 l         然后,找到PE头内的Section头部。通常在Section头部结束到Section数据部分开始间会有一些空间,找到Section头部的最后然后加入一个新的头部。假设最后一个Section头部的数据是: 1. Virtual offset : 34000h 2. Virtual size : 8E00h 3. Raw offset: 2F400h 4. Raw size : 8E00h 而文件对齐和Section对齐的数据分别是: 5. Section Alignment : 1000h 6. File Alignment : 200h l         那么新增加的Section必须与最后一个Section的边界对齐。它的数据分别: 1. Virtual offset : 3D000h (因为最后一个Section的最后边界是34000h + 8E00h = 3CE00h,加上Section对齐,则Virtual offset的值为3D000h)。 2. Virtual size : 200h。 3. Raw offset: 00034500h。 4. Raw size: 200h. 5. Characteristics : E0000060 (可读、可写、可执行)。 l         最后,只需要修改一下PE头内的SizeOfCode和SizeOfInitialishedData两个字段,分别加上200h。 l         剩下的就是按照方法一的方式把代码放入即可。 三、        增加执行文件的输入表项目。 在一些特殊用途上,我们需要为执行文件或DLL增加其不包含的API。那么可以通过增加这些API在输入表中的注册来达到。 1. 每一个输入的DLL都有一个IMAGE_IMPORT_DESCRIPTOR (IID)与之对应。PE头中的最后一个IID是以全0来表示整个IID数组的结束。 2. 每一个IID至少需要两个字段Name1和FirstThunk。其他字段都可以设置为0。 3. 每一个FirstThunk的数据必须是一个指向IMAGE_THUNK_DATA数组的RVA。每一个IMAGE_THUNK_DATA又包含了指向一个API名称的RVA。 4. 如果IID数组发生改变,那么只需要修改数据目录数组中对应输入表的数据结构IMAGE_DATA_DIRECTORY的iSize。 增加一个新的IID到输入表的末尾,就是把输入表末尾的全是0的IID修改成增加的新的IID,然后在增加一个全0的IID作为输入表新的末尾。但是如果在输入表末尾没有空间的话,那就需要拷贝整个输入表到一个新的足够的空间,同时修改数据目录数组对应输入表的数据结构IMAGE_DATA_DIRECTORY的RVA和iSize。 步骤一、增加一个新的IID。 把整个IID数组移到一个有足够空间来增加一个新的IID的地方。这个地方可以是.idata段的末尾或是新增一个Section来存放。修改数据目录数组对应输入表的数据结构IMAGE_DATA_DIRECTORY的RVA和iSize。如果必要,将存放新IID数组的Section大小按照Section Alignment向上取整(比如,原来大小是1500h, 而section Alignment为1000h,则调整为2000h)以便于整个段可以被映射到内存。运行移动过IID数组的执行文件,如果正常的话,则进行第二步骤。如果不工作的话,需要检查新增的IID是否已经被映射到内存及IID数组新的偏移位置是否正确。步骤二、增加一个新的DLL及其需要的函数。在.idata节内增加两个以null结尾的字符串,一个用来存放新增的DLL的名字。 一个用来存放需要导入的API的名称。这个字符串前需要增加一个为null的WORD字段来构成一个 Image_Import_By_Name数据结构。计算这个新增的DLL名称字符串的RVA.把这个RVA赋予新增的IID的Name1字段。再找到一个DWORD的空间,来存放Image_Import_by_name的RVA。这个RVA就是新增DLL的IAT表。计算上面DWORD空间的RVA,将其赋予新增IID的FirstThunk字段。运行修改完的程序。
请参照百度经验网页链接
如何修改PE文件

怎么进入pe

Windows PE是一个小型的操作系统, 它可以不需要硬盘而完全在内存中运行 。主要用于安装、部署和修复Windows 操作系统。 例如在 Windows PE下,可以进行以下的一些操作:1、在安装 Windows 操作系统之前,对硬盘进行分区、格式化等操作。2、从网络或本地驱动器的应用或脚本安装 Windows操作系统。3、备份和还原 Windows 系统映像。4、在 Windows 操作系统没有运行的情况,对其进行修改。5、设置自动恢复工具。6、从无法启动的设备中恢复数据。要使用Windows PE,要先在正常的Windows操作系统下创建好可启动 Windows PE 介质,这些介质可以是U盘、光盘、硬盘或虚拟硬盘等。32 位版本的 Windows PE 可以启动 32 位 UEFI 电脑和 BIOS 电脑以及 64 位 BIOS 电脑。64 位版本的 Windows PE 可以启动 64 位 UEFI 电脑和 BIOS 电脑。创建好可启动的 Windows PE 介质后,就可以使用它来启动电脑了,以U盘PE为例,操作步骤如下:1、将U盘连接到电脑上的USB接口(尽量使用USB2.0的接口)。2、按下电脑的开机键进行开机。3、在系统自检过程中,按压特定的功能键进入选择启动设备界面。 不同品牌的主板或不同的机型所对应的功能键也会不同,一般较为的常见的是F1、F2、F12。4、在启动设备选项中,选择对应的U盘。并按确认键。5、电脑就会启动到 Windows PE了。
你是想装系统吗?抱去电脑店装机需要30---50元,虽然钱不多但是麻烦,不如用30---50元买个U盘自己装系统,知识也学了机器也装了,主要是方便了,而且自己又落个U盘,呵呵,何乐而不为。 以下是用U盘装机流程,自己看看,学会不求人,而且自己更方便。U盘装系统:是把U盘装个PE系统后,插在电脑上,可以用主板带动U盘启动,然后做系统用,主要是方便又可以更好的操作。具体方法:去买个2.0U盘(3.0U盘要有驱动才行,装机会容易失败。),按下边的去做即可自己装系统了。以下是U盘装机流程: 以大白菜pe或是老毛桃pe为例,都一样。以下是U盘装机流程: 以大白菜为例准备未储存文件的空U盘(建议使用8G以上U盘,注意:制作PE系统时会把U盘格式的),下载大白菜U盘装机系统软件,如果自己的电脑可用,就在自己的电脑上把U盘装成PE系统,如果不好用到别的机器上制作成‘大白菜’PE安装软件的U盘,即可开始装机,把U盘插到电脑上后开机。注意!此处很重要:U盘做好后首先要做的是: 电脑正常时或是到PE桌面时,要 备份电脑上重要文件,(主要有:桌面上的重要文件和我的文档里的重要文件,拷到D盘里。)然后开始执行以下事情:注意!重装前 WIN 10要先进入bios关掉uefi兼容模块,并且在进入U盘PE后要转化硬盘格式为mbr格式,不然装上也开不了机。注意!如果电脑内存是4GB以上,则必须选择64位系统版本,因为32位Win7系统最大只支持4GB内存。建议你,重装系统前把C盘格式化一下再装系统可解决硬盘有逻辑坏道问题。1,先把WINXP、 WIN 7 或是 WIN 8、或是WIN 10 镜像下载到硬盘里或是预先做个GHO文件保存在U盘里,然后在除C盘以外的盘或者U盘根目录里新建一个GHO文件夹,也可以在D盘根目录下建一个GHO文件夹,然后把WIN7镜像用UltarISO或者WinRAR解压释放到GHO文件夹中。注意:切记注意不要在C盘中建GHO文件夹,那样会再安装过程中把GHO文件清掉而安装失败。2,把启动U盘插在电脑上,然后开机:如果是新式UEFI BIOS,一般可以直接按F12进入到快捷启动菜单,在菜单中选择U盘名称,即可从U盘启动。如果是老式BIOS,那必须按Del或F2等进入BIOS,然后在Advanced BIOS Features项目下,或者Boot,或者Startup下,找到First Boot Device或1st Boot Device等,进入后把USB-HDD或U盘名称设为第一启动,具体方法看主板的说明书,或到网上搜索。启动U盘后,进入到这个U盘PE界面,选择“运行Windows PE(系统安装)”。3,进入大白菜PE 或是老毛桃PE桌面后,选择"WIN系统安装器"这个桌面快捷图标,双击运行。4,弹出NT6快捷安装器,首先就是要找到先前下载解压出来的系统文件,点击“打开”按钮。5,打开一个文件选择框,找到先前在D盘建立的GHO文件或是的GHO文件夹,然后找到其子文件夹Sources,然后再在Sources文件夹下找到install.wim这个文件,这个就是安装文件,选好后点击“打开”按钮。6,然后选择安装分区,一般会默认为C盘,如果需要安装到其它盘,那就要手动调整,如果是新手,最好不要去调整它,因为系统分区必须是主分区,而且必须是激活的,所以如果不了解这些最好不要去碰这个。7,在这里,弹出安装前最后一个确认窗口,仔细看一看,如果确定都选择好了,就可以点“确定”,安装开始。8,这时系统会将GHO中的系统文件复制到C盘指定的地方,复制几个G的文件会需要一定时间,请耐心等一等。9,等复制完成后,弹出提示”请重启动计算机进入安装阶段“,点”是“,电脑马上重启,这时就可以拔出U盘了,如果是UEFI BIOS,会仍从硬盘启动,如果是老式BIOS,就必须进入BIOS中,把从U盘启动改为从硬盘启动。10,重新从硬盘启动后,进入电脑,就会开始安装系统,如配置开始菜单,注册组件等等,整个安装过程所需要的时间会更长,一定要耐心等待。 注意!未安装完成前禁止强制退出。 有帮助请采纳下,选为满意答案,谢谢!
winpe---U盘版进入winpe教程 1.首先把u盘插入电脑,然后开机 ,在出现dell画面时狂按F12,或者end,每个品牌的电脑方法不一样,这个需要自己去搜索一下。2.然后上下选择进入启动顺序选择 选择usb storage Dev ice的然后 回车进入。进入之后是pe主界面,里面有很多的选项,这时候就不能瞎点了。win7及以下选择第一项 win8选择第二项然后按回车。3.进入之后是类似windows桌面的一个桌面,不要以为已经安装好了,这个只是长的像windows 的桌面,这时候就选择windows安装 。进入后会弹出一个窗口, 第一个选项是选择install.wim文件 这个文件在已经下载好的iso镜像文件里 解压后在sources文件夹里这里提一下,iso不能放在放系统的盘里,可以放在u盘里 或者电脑的其他盘符里。 4.引导和安装位置就是装到哪个盘里选哪个盘里就行,本人建议最好不要装c盘,因为这样电脑运行速度不会很流畅。pe里的盘符有时候会改变,选择的时候一定看清安装盘是否正确。
第一步:开启电脑,不断按F12进入快捷启动项列表。第二步:按方向键选择U盘的位置。第三步:按下回车键,即可进入PE系统。
进入pe系统需要使用u盘制作成启动盘后在插到电脑上开机进入主板设置由u盘启动即可进入界面选择,新版主板可以进入bios主板界面按f8会弹出启动项,选择u盘即可,旧主板就需要看什么主板了
怎么进入pe

请问PE文件的入口点还有范围吗

入口点不能随便改应该只能在PE头之内的地方。 对于你这个情况 我觉得你可以通过加壳改壳实现。 说白了找个时尚点的加壳工具加壳后OD载入然后改源码比如壳上加壳活着OD脱壳之类的
请问PE文件的入口点还有范围吗

请问怎么在pe里找桌面文件

找到桌面上的我的电脑,打开C盘,点击默认用户名Administrator文件夹,找到Desktop文件夹,打开它,就会看见桌面上的所有文件。 PE系统其实就是当我们的电脑出现问题而不能进入正常系统时候的一种“紧急备用”系统。打开PE系统以后,所有的桌面文件都只能在我的电脑C盘里面找。 更多关于怎么在pe里找桌面文件,进入:https://m.abcgonglue.com/ask/c7a9b51615836769.html?zd查看更多内容
请问怎么在pe里找桌面文件

PE文件中的PE文件头是不是就相当于一个PE程序的主入口?

PE文件头是PE文件之所以是PE文件的合法性与规范,它包括一大堆数据,比如程序入口,内存装载地址,对齐粒度,代码位置,资源位置等等。 PE文件是个复杂数据大烩集,必须在其头部指定其一切数据,否则随便拿个TXT文件后缀改为EXE就让系统执行明显系统不是傻的。
PE文件中的PE文件头是不是就相当于一个PE程序的主入口?

相关新闻

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息