一、前言
二、PE整体结构
三、DOS头
四、NT头
五、区段头
六、导出表
七、导入表
八、资源表
九、重定位表
1.概念
程序中通常包含图片、菜单、控件、不同样式的文本等多种多样的内容。
这些内容或界面元素,都以二进制的形式保存在PE文件中。
这些数据保存的位置,就是PE文件的资源段(.rsrc)
这些数据的组织格式,我们成为资源表
2.资源表定位
前面提到的 NT头->扩展头->数据目录表->第三个元素->相对虚拟地址(RVA)
还用010Editor打开百度云盘看一下
从扩展头里的数据,我们就可以得到资源表的定位信息RVA
资源表所在区段是.rsrc段
资源表FOA = 资源表RVA - 区段RVA + 区段FOA = 0x7B7000 - 0x7B7000 + 0x79EA00 = 0x79EA00
3.资源表结构
资源表的结构比较复杂,一共有三层,三层从上到下是树状扩展的
第一层数据代表资源种类的数量及名称
第二层数据代表每种资源中资源的数量及名称
第三层数据代表资源文件的位置
每层由一个 IMAGE_RESOURCE_DIRECTORY 结构体和N个 IMAGE_RESOURCE_DIRECTORY_ENTRY 结构体组成。