PE结构学习(二)

https://mp.csdn.net/postedit/86154806 

上一篇,我们已经知道了PE结构分为两大部分,PE头和PE数据区。现在我们从PE头开始说起:

PE文件头

     顾名思义这是PE文件头部,他的组成是DOS头,PE头和节表。现在我们进入DOS头。

DOS头

  DOS头又分为两部分,DOS MZ头 和DOS Stub

   

这就是第一章PE结构图中DOS头的部分,所以说非常直观,我们可以看到有许多的字段。但是只有两个是有用的,那就是第一个MZ字段和最后一个偏移字段!

在010editor里面是这个样子,PE文件第一个字段是EXE的标志,最后一个是起始地址到PE头的偏移地址。

 DOS头的定义如下

 再来DOS头还有DOS Stub部分,这部分现在也是用不到了,他的作用是在DOS的环境下输出一行文字(我这时候想假设我在这段写入一些代码,应该也可以在DOS下执行),在windows环境是没有用的,所以连这个图都已经直接上了一条黑条

所以DOS头就这样学完了,是不是肥肠开心。

接下来就是要进入PE头了!

PE头

首先PE头由三个部分组成,分别是PE标志,PE标准头,PE拓展头。

他们的定义长这样子:

signature就是PE标志,这个值是固定的,4550。

接下来就是标准PE头了,

标准PE头可以看到是个结构体

大小为20个字节,记录的是PE文件的全局属性,在PE格式图中的深蓝位置

 现在开始逐字段解释一下有什么用。

Machine表示运行在哪一个CPU平台,占两个字节,一般是014C表示I386,intel32位平台

NumberOfSections,pE中节的数量

现在就要解释一下什么是

首先为了保护数据和代码的安全,所以一般代码和数据都会分离,为了实现操作的安全和内核稳定,所以数据都会有不同的权限,比如说可读可写,可读不可写这种。

然后windows加载数据的时候就会把相同属性的数据放在一页,所以就出现了节的概念。

所以说节就是存放相同属性数据的一个位置。所以PE中节的数量就是有多少种不同属性的数据。

sizeofOptionalHeader:拓展头的大小

Characteristics:PE文件的属性,例如,DLL是0x0210,这个是属于查询性的东西,查就好,现在暂时不管。

就这样,重要的已经讲完了。

接下来就是将PE拓展头

PE拓展头

      虽然叫拓展头,但是并不是可有可无的,他是非常重要的存在。

      现在让我们看看他长什么狗样子     /滑稽

      

卧槽,这也太长了,当场去世的节奏。

https://blog.csdn.net/qq_29263207/article/details/86212841

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小俊000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值