PE学习笔记1


学习笔记来源《Windows.PE权威指南》这本书

与PE相关概念

地址

VA(Virtual Address):虚拟内存地址
RVA(Relative Virtual Address):相对虚拟内存地址
FOA(File Offset Address):文件偏移地址
特殊地址

扩展

分页机制原理:操作系统处理程序时,假设该程序独立拥有4GB内存,但是按照某个固定的大小(如4KB)将这4GB空间分成N个页(1M);在处理进程的某个时刻,却只有一部分与物理内存对应,未与物理内存对应的页面被标记为脏(dirty),一般存储在一个名为"交换文件"的磁盘文件中。在WindowsXP系统中,交换文件名为"pagefile.sys":当系统读取未在内存中的数据时,它将内存中不常读写的页交换出来,再将要读取的,位于交换文件中的页换进内存。
这样子就能够实现将一个进程有用比实际内存大得多的内存,而这种管理机制下又称为虚拟内存。

虚拟内存VA

PE文件被操作系统加载进了内存,该PE对应的进程支配自己独立的4GB虚拟空间。范围:00000000h-0fffffffh
VA = 进程的基地址 + 相对虚拟内存地址

相对虚拟内存地址RVA

模块的概念:随着一个进程被加载到虚拟内存空间,相关的动态链接库也会被加载,即同时被加载到进程地址空间的文件称为模块。
每一个模块都会有一个基地址,在4GB的空间里存储。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bcdVm4D6-1571059551781)(en-resource://database/2212:1)]
RVA相对模块,VA相对整个地址空间

文件偏移FOA

与内存无关,指某个位置距离文件头的偏移。

特殊地址

计算方法是从某个特定的位置算起,在PE结构中很少见,在资源表里出现过。

数据目录

PE中一个数据结构叫做数据目录,其记录了可能的数据类型。目前一定义的有15种:包括导入表,导出表,资源表,异常表,属性证书表,重定位表,调试数据,Architecture,Global Ptr,线程局部存储,加载配置表,绑定导入表,IAT,延迟导入表和CLR运行时头部。

Windows操作系统对不同用途的数据设置不同的访问权限,为不同属性数据分配标记不同属性的页面,确保程序运行时安全。
节:存放不同类型数据,如代码,数据,常量,资源等,不同节具有不同的访问权限。
节是PE文件中存放代码或数据的基本单元。
从操作系统加载角度看待节,节是相同属性数据的组合,比如可读,只写等。

对齐

PE中规定了三类对齐:数据在内存中的对齐,数据在文件中的对齐,资源文件中资源数据的对齐。
内存对齐
Windows操作系统对内存属性的设置以页为单位。
那么节在内存中对齐单位至少是一个页的大小,对32位而言是,值是4KB(1000h),对64位而言是8KB(2000h)
文件对齐
通常以一个物理扇区的大小作为对齐粒度,即512字节(200h)。
处于节约资源的考虑,允许节在内存和文件中对齐尺寸不一致,一般PE在内存中的尺寸比在文件中尺寸大。
如果内存对齐被定义为小于操作系统页的大小,则文件对齐和内存对齐的值必须一致。
资源数据的对齐
资源字节码部分一般要求以双字(4字节)方式对齐。

PE文件结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vijsgbm-1571059551784)(en-resource://database/2214:1)]
通过DOS Header中的最后一个字段e_lfanew的值可以定位到PE头的起始位置。
PE_Start = Dos MZ基地址 + IMAGE_DOS_Header.elfanew
DOS MZ 头的大小是64个字节(0x3c)
PE头的大小由IMAGE_FILE_HEADER.SizeOfoptionalHeader确定
一个节的大小40字节(0x28),节表大小 = 节 * 节的数量,节的数量由IMAGE_FILE_HEADER.NumberOfSections确定
PE文件头 = DOS头 + PE头
节表是所有节的目录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值