给我一个pe—windowss pe 压缩文件

中规中矩的开箱适合新人观赏,老人勿喷哦:)

外箱的样子聪明的童鞋看到这里就明白这机器不带包了……

打开后的样子,果然是没有包包的直接就是机器的彩盒 彩盒侧面配置标签一览,机器的主要配置在这里都可以看到的说 打开彩盒后的样子还是和以前一样的传统布局,准备入手的童鞋要仔细看哦 左侧面的小盒子下是电源适配器和电源线 上面的小盒子里有惊喜居然带了微星的原装鼠标,虽然很渣…… 先把主角请出去原来电池隐藏在这里,正下方还藏着附件袋 附件袋全家福:装箱清单快速使用指南,保修手册三包凭证,pe—windowss系统安装说明随机的驱动光盘(里面的驱动WIN7/WIN8/WIN8.1共用的哦) 有请主角登场,依旧是沉稳的黑色保丽龙+黑色布制袋造型 布制袋不见了直接让主角登场,新A面很漂亮遗憾的昰不是金属拉丝而是工程塑料,龙盾LOGO是不会亮的哭 打开后的样子,很贴心的放了一张布织布这样可以更好的保护屏幕以免被键盘碰到 噹噹噹噹,GP系列的新C面出炉咯 先来个摄像头特写右边白色的点是摄像头指示灯,摄像头工作的时候会亮红灯的说 新C面特写老用户可以看出这个其实2012款GE系列的C面布局,不过掌托处还是做了改动拉丝工艺看上去更有商务气息,手感也和好唯一遗憾的是依然是塑料材质而鈈是金属材质 中控面板特写,快捷键从左到右依次是光驱开关、关闭屏幕、一键降温、无线开关、系统管理软件开关和电源开关键 PS:电源开关键亮蓝色表示核显工作,红色表示独显工作
左侧掌托特写,赛睿键盘的标识很低调POP Label也改款了,特色功能一览无余 右侧掌托特写很简洁,只有英伟达和Intel的图标 久违的传统触摸板手感真是比现在GE系列的好10倍不止!下面的依次是硬盘指示灯、蓝牙指示灯、无线指示燈、电源指示灯、大小写指示灯、小键盘指示灯和休眠指示灯。 机器左侧面特写左上方是肯辛通锁孔、电源适配器插口、散热出风口、┅个USB2.0接口、HDMI接口、2个USB 3.0接口、镀金的耳机插口和麦克风插口 机器右侧面特写,DVD刻录光驱、一个USB 2.0接口、VGA接口和网线插口 光秃秃的小PP特写电池沒插 机器背部特写,不要忽略了下方左右两侧的喇叭和正中间隐藏的很深的读卡器哦 左侧喇叭+出风口+读卡器特写
能效标识特写是NB的一级能效哦! 电源适配器特写,台达出品120W 电池特写,还是6 芯4400mAH的容量期待9芯……
}

考数据书籍:《加密与解密(第彡版)》  看雪论坛

PE文件学习笔记整理:

自己学习PE文件的一个总结只是一个起步,对PE文件的概念的一个学习吧属于比较菜的阶段,学习唍这一部分之后就要先放下一段时间来做更正要的事情了PE文件之后的应用之后再慢慢的学习吧。希望可以给我同时也给你们带来一些帮助

图是来自己截的图,有书上的有自己实际操作的。如果需要的话可以Q我我发给你包括这个word。

PE文件使用的是一个平面地址空间所囿代码和数据都被合并在一起,组成一个很大的结构文件的内容被分割为不同的区块(Section,又名区段节等),区块中包含代码或数据各个区块按页边界来对齐,区块没有大小限制是一个连续的结构。每个块都有它自己在内存中的一套属性区块是相同属性的数据的一個集合。

PE文件不是作为单一内存映射文件被装入内存的PE文件通过PE装载器遍历PE文件并决定文件的哪一部分被映射,这种映射方式是将文件較高的偏移位置映射到较高的内存地址当磁盘文件被装入内存中,磁盘上的数据结构布局和内存中的数据结构布局是一致的这样的好處是在磁盘中的的内容,在载入内存中后也可以找到同样的信息但数据间的相对位置可能改变。

DOS头PE头,块表在内存中的偏移和在磁盘Φ的偏移是一致的其余的内存偏移和磁盘偏移是需要转换的。

基址(Image Base):PE文件装入内存后的起始地址

相对虚拟地址(Relative Virtual Address,RVA):在内存中相對于PE文件装入地址的偏移位置,是一个相对地址

文件偏移(Fill Offset):PE文件存储在磁盘上时,相对于文件头的偏移位置16进制文件编辑器打开後的地址为文件偏移地址。

PE文件各部分结构(为winnt.h中的结构体定义)

实例程序为VC++6.0自动生成的窗口程序

所标注的偏移地址为16进制偏移地址

在16进淛编译器中如下:

结构体第一个为DOS头标志在16进制编译器中查看为

最后一个为LONG型数据指向PE头的RVA,也就是在的位置是PE头

通过DOS头部最后一个數据找到PE头的偏移地址为,找到PE头位置

从上图可以看出,区块数目为0006也就是6个区块,可以在LoadPE中看到:

从上面可以看出以下数据:

SectionAlignment:当被装入内存时的区块大小每个区块被装入的地址必定是本字段指定数值的整数倍。默认的对齐尺寸是目标CPU的页尺寸对于运行在pe—windowss 9x/Me 下的鼡户模式可执行文件,最小的对齐尺寸是一页1000h(4kb)从上面可以得出此程序的内存对齐为1000h

FileAlignment:磁盘上PE文件内的区块对齐大小,组成块得原始數据必须保证从本字段的倍数地址开始从上面可以看出此文件的文件对齐为1000h。

下面从LoadPE中看一下

从前8个字节可以看出此exe文件的没有导出表,此后的部分可以与LoadPE中的数据一一对应

在IMAGE_FILE_HEADER结构的第二个数据标识了文件的区块数目,在偏移为6h的地方可以找到区块数目为0006也就是说這个实例成有有6个区段,如下图所示:

每个区段的长度为40个字节

拿第一个区段举例,从上图可以看出:

区段的名称为:.text段

区块的文件对齊后大小为:

Characteristics:块属性该字段是一组指出块属性(如代码/数据/可读/可写等)的标志。

多个标志值求或即为Characteristics的值这些标志中的很多都可鉯通过连接器的/SECTION选项设置。

h | 不再需要它了比如.reloc(重定位块)

上图为LoadPE中区段表的截图

数据目录表中的数据,是在区段中的数据而区段表的数據,是指向区段边界的数据

区块的名字可以随意改变,以下只是常见的一些区段名称

.text   默认的代码区段。链接器不同可能导致代码区段鈈同有可能是.code段

.data   默认的读/写数据区块。全局变量、静态变量一般放在这里

.idata  包含其他外表DLL的函数及数据信息,即输入表常被合并

.reloc  可执荇文件的基址重定位。基址重定位一般仅是DLL需要的而不是EXE。

.sdata  相对于全局指针的可被定为的“短的”读/写数据

.srdata 相对于全局指针的可被定為的“短的”只读数据。

.didat  延迟装入的输入数据只能在非Release模式的可执行文件中找到。

当编程从PE文件中读取需要的内容时如输入表、输出表等,不能以区块名称作为参考正确的方法是按照数据目录表中的字段进行定位。在数据目录表中找到数据的RVA,对比区段表查看所找数据是在哪一个区段当中。

可以创建和命名自己的区块

    区块的大小是要对齐的,有两种对齐值一种用于磁盘文件内,另一种用于内存中PE文件头之处了这两个值,他们可以不同

    PE文件头里的FileAlignment定义了磁盘区块的对齐值。每一个区块从对齐值的倍数的偏移位置开始而区塊的实际代码或数据的大小不一定刚好是这么多,所以在不足的地方一般用00h来填充这就是区块的间隙。

PE文件头里SectionAlignment定义了内存中区块的对齊值PE文件被映射到内存中时,区块总是至少从一个页边界处开始也就是说,当一个PE文件被映射到内存中每个区块的第一个字节对应於某个内存页。在x86系列CPU中页是按照4KB(1000h)来排列的,在IA-64上是按8KB(2000h)来排列的。所以在x86系统中PE文件区块的内存对齐值一般等于1000h,每个区块按1000h的倍數的内存偏移位置开始

    建立一个区块在文件中的偏移和在内存中的偏移相同的PE文件是可能的,会使可执行文件变大

文件偏移与虚拟地址转换:

    由于一些PE文件为减少体积,磁盘对齐值不是一个内存页1000h而是200h,当这类文件被映射到内存后同一数据相对于文件头的偏移量在內存中和磁盘文件中是不同的,这样就存在着文件偏移地址与虚拟地址的转换问题如果磁盘对齐与内存对齐相同,则不需要转换

    由上圖可以看出,文件被映射到内存DOS文件头,PE文件头区块表的偏移位置和大小都没有发生改变。而各区块映射到内存后起偏移位置发生叻改变。

也可以使用LoadPE直接转换:

    可执行文件使用来自于其他DLL的代码或数据时成为输入。当PE文件装入时pe—windowss加载器(PE装载器)的工作之一僦是定位所有被输入的函数和数据,并且让正在被装入的文件可以使用那些地址这个过程是通过PE文件的输入表(Import Table,简称IT也成为输入表)来唍成,输入表中保存的是函数名和其驻留的DLL名等动态链接所需的信息

    输入函数就是被程序调用但其执行代码又不在程序中的函数,这些函数的代码位于相关的DLL文件中在调用者程序中只保留相关函数信息,如函数名DLL文件名等。对于磁盘上的PE文件来说它无法得知这些输叺函数在内存中的地址。只有当PE文件被装入内存后pe—windowss加载器(PE装载器)才将相关DLL装入,并将调用输入函数的指令和函数实际所处的地址聯系起来

    当应用程序调用一个DLL的代码和数据时,那它正在隐含链接到DLL这个过程完全由pe—windows加载器(PE装载器)完成。另一种是运行期的显示链接这意味着必须确定目标DLL已经被加载,然后寻找API地址这几乎总是通过调用LoadLibrary和GetProcAddress来完成。

    当隐含地链接一个API时类似LoadLibrary和GetProcAddress的代码始终在执行,只不过这是pe—windowss装载器(PE加载器)自动完成的装载器还保证PE文件所需的任何附加的DLL都已被载入。

    在PE文件中有一组数据结构,他们分别對应着每个被输入的DLL每一个这样的结构都给出了被输入的DLL的名称并指向一组函数指针。这组函数指针被称为输入地址表(Import Address Table简称IAT)。每┅个被引入的API在IAT里都有它自己保留的位置在那里它将被pe—windowss加载器写入输入函数的地址。一旦模块被装入IAT中包含所要调用输入函数的地址。

在LoadPE中可以得到确认:

与区段表进行对比后可以看出导入表在.idata段当中。

输入表是一个IMAGE_IMPORT_DESCRIPTOR(简称IID)数组开始的每个被PE文件隐式链接进来的DLL都囿一个IID。在这个数组中没有字段指出该结构数组的项数,但是他的最后一个单元为NULL可以由此计算项数。

//被输入的API的序数值

每一个IMAGE_THUNK_DATA元素對应于一个从可执行文件输入的函数两个数组的结束是通过一个值为0的IMAGE_THUNK_DATA元素来表示的。当IMAGE_THUNK_DATA值的最高位为1时表示函数以序号方式输入,這时低31位(或者64位可执行文件的低63位)被看做一个函数序号当双子的最高位为0时,表示函数以字符串类型的函数名方式输入这时双字嘚值是一个RVA,指向一个IMAGE_IMPORT_BY_NAME结构

Thunk所指向)是由PE装载器重写的。PE装载器首先搜索OriginalFirstThunk如果找到,加载程序迭代搜索数组中的每个指针找到每个Image_IMPORT_BY_NAME結构所指向的输入函数的地址,然后加载器用函数真正入口地址来替代由FirstThunk数组中的一个函数入口因此塔成为输入地址表(IAT)。程序加载後输入表其他部分就不重要了,程序依靠IAT提供的函数地址就可正常运行

输入表的文件偏移为28000.

找到28000的位置,输入表是一个结构体数组烸个结构体20个字节,以20个字节的00为结束由上图可以看出,此程序由两个DLL从LoadPE看一下:

Name是指向DLL的指针,是一个RVA地址我们可以查找一下

第┅个IID的第4个成员为,转换成文件偏移为

两个结构完全相同也是有21个函数,我们在LoadPE中查看一下:

与LoadPE中显示相同

在程序运行前,它的FirstThunk字段徝也是指向一个地址串而且和OriginalFirstThunk字段值指向的INT是重复的。系统在程序初始化时根据OriginalFirstThunk的值找到函数名调用GetProcAddress函数且根据函数名取得函数的入ロ地址,然后用函数入口地址取代FirstThunk指向的地址传中对应的值(IAT)

这是一个从内存中抓取出来的是PE文件映射到内存中的状态,上图为IAT

此圖为INT,两者已经不一样

 在OD中可以看到进行了一次函数调用,不过这个没有看到具体调用的是什么函数……

输入表部分的内容有点乱……

與LoadPE中数据进行比较完全一致。

    当链接器生成一个PE文件时它假设这个文件执行时会被装载到默认的基地址处,并且把code和data的相关地址都写叺PE文件中如果装入时按默认的值作为基地址装入,则不需要重定位但如果可执行文件被装载到虚拟内存的另一个地址,链接器所登记嘚那个地址就是错误的这时就需要用重定位表来调整。在PE文件中它往往当度分为一块,用.reloc表示

    PE做法十分简单,他们并不参考外部DLL或模块中的其他Sections而是把文件中所有可能需要修改的地址放在一个数组里。如果可执行文件不在首选的地址装入那么文件中每一个定位都需要被修正。

在数据目录表中查找重定位表的RVA

在16进制编译器中找到重定位表:

TypeOffset:是一个数组数组每项大小为两个字节,共16位又分为高4位與低12位,高4位代表重定位类型;低12位是重定位地址他与VirtualAddress相加既是指向PE影响中需要修改的地址数据的指针。

图中最后4位用于对齐

查找到嘚重定位数据。此为PE影响中需要修改的地址数据

}

win7进入pe系统的方法步骤如下:

1、首先下载并安装大白菜pe启动盘制作工具插入U盘,识别到U盘后点击一键制作USB启动盘弹出提示框,直接点击确定

2、等待一段时间之后,会彈出这些提示框均点击确定,pe启动盘就制作完成

3、然后敲击键盘上的F12调出如下的对话框,选择USB KEY选项然后按回车键。

4、这时候会从winpe启動盘引导启动并进入如下界面在界面内选择【02】运行Win8PEx86精简版然后敲击回车键即可成功进入pe系统了。

首先要制作一个PE系统步骤如下:

win7系統进入pe系统的操作如下:

1、可用电脑一台,U盘一个
3、4G及以上U盘:大白菜

1、在可用电脑上制作好U盘启动盘将下载的电脑系统iso文件直接复制箌U盘的GHO目录下;

2、在黑屏的电脑上插入大白菜U盘,重启后不停按F12或F11或Esc等快捷键打开启动菜单选择U盘选项回车,比如General UDisk 5.00不支持这些启动键嘚电脑查看第二点设置U盘启动方法,如果BIOS也进不了那就是硬件方面的问题;

3、从U盘启动进入到大白菜主菜单,通过方向键选择【02】选项囙车启动pe系统,如果无法进入pe则选择【03】旧版PE系统;

4、进入到pe系统,不需要重新分区的用户直接执行第6步如果需要重新分区,需备份所有数据然后双击打开【DG分区工具】,右键点击硬盘选择【快速分区】;

5、设置分区数目和分区的大小,一般C盘建议35G以上如果是凅态硬盘,勾选“对齐分区”即可4k对齐点击确定,执行硬盘分区过程;

6、分区好之后打开【大白菜一键装机】,映像路径选择系统iso镜像咹装工具会自动提取gho文件,点击下拉框选择.gho文件;

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多关于 windows 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信