pe系统系统文件在哪-(pe系统文件在哪里)

来源:191路由网 2022-12-14 16:57:38

pe系统系统文件在哪 (pe系统文件在哪里)

首先,一个PE文件必须包含的部分就是程序代码部分,data部分,导入导出表部分等。也就是一个程序之所以被称为程序的核心。为了方便管理,window将属性相同的数据放在一起。这些属性相同的内容就被称作section,翻译成节。很多个节就形成节区。

但这样就有一个问题,程序到底如何执行,在哪里找代码,在哪里找数据呢。于是必须对节和节中内容进行描述。

首先是对节区中的节的描述,放在IMAGE_SECTION_HEADER结构中,所有的这种结构就构成了节表。节表描述了相应节的属性和位置等信息。

除了对节的表述,由于程序的数据是按其属性放在不同的节中的,不同用途但属性相同的数据(如导入表,导出表以及.const段指定的只读数据)可能被放在同一个节中,那如何找到这些节中的某电脑一种用途的数据呢。就需要再进行表述。结构IMAGE_DATA_DIRECTORY就是用来进行这种描述的。再PE文件中共有16个这种结构。

除了对节和节中内容数据进行描述。也需要对形成的这个文件进行描述,以及如何找到上述的结构体的位置。首先,需要定义一个文件头,用来标识文件的开始。字符’PE’0 0就用于作为文件开头,这也就是PE文件这种称呼的来历。接着是对这个文件的描述,包括一个IMAGE_FILE_HEADER和IMAGE_OPTIONAL_HEADER32,这两者没有什么本质区别。虽然后者叫optional,但其实是必不可少的。而上面提到的IMAGE_DATA_DIRECTORY就放在了 IMAGE_OPTIONAL_HEADER32了。

最后为了兼容dos系统,又加入了dos部分的内容。

请结合下表学习上面的内容。

电脑

我们上面是用逻辑分析出了PE文件的设计思路。我们下面一一分析一些这些结构以及这些结构中重要的字段。

首先是dos部分的结构体。其中最重要的是e_lfanew字段,它指向了PE文件头的位置。

接下来是PE文件部分。包括三部分,前面提到了。

文件标识

IMAGE_FILE_HEADER

IMAGE_OPTIONAL_HEADER32

IMAGE_FILE_HEADER中的重要字段有

Machine运行平台

Numberofsection节的数量

SizeofOptionalHeader 也就是后面那个部分的大小

characteristics 一些重要属性。

IMAGE_OPTIONAL_HEADER32中的重要字段,包括

AddressEntryPoint 文件被执行时的入口地址,可以理解为main函数的地址。

imagebase 文件执行时优先装入内存的地址。

SectionAlignment字段指定了节被装入内存后的对齐单位

FileAlignment字段指定了节储存在磁盘文件中的对齐地址。

然后是16个IMAGE_DATA_DIRECTORY结构了,每个结构包括相应用途的数据的RVA地址,VirtualAddress字段,和其长度,isize字段。(RVA地址后面讲)

接下来是节表中的结构IMAGE_SECTION_HEADER了。里面重要的字段有四个。

VisualSize,没有经过任何对齐处理前的实际大小

VisualAddress,在内存中的偏移电脑地址,也就是RVA

PointerToRawData,该节在磁盘文件中所处的位置

SizeofRawData,Visualsize经过FileAlignment后的大小

有个这四个字段,就可以将数据从磁盘正确的装在到内存中了。具体是把位置在3,大小为4的数据放在地址为2的内存地址中,然后按1提供的大小按SectionAlignment装入内存。

什么是RVA

RVA,relative virtual address,就是内存中的偏移量的意思。由于各种原因,文件在磁盘中的大小和在内存中的大小是不一样。这个RVA就是在内存中时距离PE文件开始的偏移地址。

接下来我们来梳理下,如何在PE文件中找到相应的数据。

首先是dos头指向pe头,pe头固定偏移地址上是IMAGE_DATA_DIRECTORY,找到相应的数据,按照其中的RVA就可以访问响应的数据了。


电脑
点击展开全文

相关阅读

u盘文件无法读取全部-(u盘文件无法读取全部文件)

u盘文件无法读取全部(u盘文件无法读取全部文件)我们在使用过U盘的时候,有没有都遇到过这种情况,明明好好的U盘,怎么插到电脑上读不出来了呢?到底是U盘坏了还是电脑坏了?今天就教大家4个解决方法,让你的U盘轻松读取出来。方法1:取消勾选“隐藏的驱动器”首先要排除是不是U盘损坏的问题,当U盘插入到其他电脑,如果可以读出来,那么肯定不是U盘的问题了。很有可能是U盘在你的电脑上...

2022-12-14

pe系统系统文件在哪-(pe系统文件在哪里)

pe系统系统文件在哪(pe系统文件在哪里)首先,一个PE文件必须包含的部分就是程序代码部分,data部分,导入导出表部分等。也就是一个程序之所以被称为程序的核心。为了方便管理,window将属性相同的数据放在一起。这些属性相同的内容就被称作section,翻译成节。很多个节就形成节区。但这样就有一个问题,程序到底如何执行,在哪里找代码,在哪里找数据呢。于是必须对节和...

2022-12-14

手提电脑不识硬盘启动盘-(手提电脑不识硬盘启动盘怎么办)

手提电脑不识硬盘启动盘(手提电脑不识硬盘启动盘怎么办)引起电脑打不开的情况有很多,以下是我们为网友汇总的问题、排错思路及解决方法,我们直奔主题:一、按开机键没有反应电脑1、主板跳线安插错误出现此类问题,应先检查主板跳线处接口是...

2022-12-14

windows7怎样更改字体-(windows7怎样更改字体大小)

windows7怎样更改字体(windows7怎样更改字体大小)对于长时间使用电脑的办公室人员来说,一定都希望字体能够看得舒服,清晰。可要怎么给Windows7调整字体大小呢?接下来小编就将Windows7系统调整字体的教程分享大家。windows7系统如何调整字体大小:1,首先,右键点击桌面空白处,菜单栏选择“屏幕分辨率”进入。2,在打开的界面中点击“放大或缩小文本和其他项目”...

2022-12-14

win10启动蓝屏无法设置-(win10启动蓝屏无法设置桌面)

win10启动蓝屏无法设置(win10启动蓝屏无法设置桌面)我们在重装win10的时候有时候会遇到卡蓝屏进不了系统的情况,这时候我们可以进入安全模式进行故障排查,如果我们连安全模式都进不去,那就只能换一个系统进行重装了。更多win...

2022-12-14

191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程

版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除