[系统安全]PE文件头中的重定位表

PE加载的过程

任何一个EXE程序会被分配4GB的内存空间,用户层处理低2G的内存,驱动处理高2G的内存。

  • 1、双击EXE程序,操作系统开辟一个4GB的空间。
  • 2、从ImageBase决定了加载后的基址,ImageSize决定了程序有多大。
  • 3、然后加载DLL

大体流程:

复制代码
1、PE被执行时,装载器为进程分配虚拟地址空间,在此情况下,并不是把完整的PE文件载入到磁盘中,而是做一个简单的内存映射。

2、PE装载器在内核中创建进程对象和主进程对象以及其他的内容。

3、PE装载器搜索输入表,装载应用程序所用的动态链接库,方式类似于应用程序的装载。

4、PE装载器执行PE文件首部所指定地址的代码,开始执行应用程序。

PE文件头中的重定位表

程序被装入内存时,其基址是由字段IMAGE_OPTIONAL_HEADER32.ImageBase决定的。如果当装载时该位置已经被别的程序使用,那么操作系统就有权重新选择一个基地址。这个时候就需要对所有的重定位信息进行修正,而修正的依据就是PE的重定位表。

重定位表结构

重定位表为数据目录中注册的数据类型之一,其描述信息处于数据目录的第6个目录项中。

复制代码
typedef struct _IMAGE_BASE_RELOCATION {
    DWORD   VirtualAddress;    // 页存储的起始RVA
    DWORD   SizeOfBlock;      // 重定位块的长度
} IMAGE_BASE_RELOCATION;
typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION;
相关推荐
moonsims2 分钟前
地下空间机器狗无线通信解决方案-通感算一体AIBrainBox-UGV:构建多层次、高韧性的生存性网络,适合工业及救援场景
网络·无人机
程序员哈基耄5 分钟前
隐私与安全工具集:您的数据,始终由您掌控
安全
China_Yanhy5 分钟前
AWS EC2 挂载新网卡不通?从网卡启动到策略路由的完整排查指南
网络·云计算·aws
林疏safe12 分钟前
信息系统安全突发事件应急预案
运维·服务器·网络
菩提小狗19 分钟前
小迪安全2023-2024|第11天:基础入门-ChatGPT篇&注册体验&结合安全&融入技术&高效赋能&拓_笔记|web安全|渗透测试|网络安全
笔记·安全·chatgpt
金士镧(厦门)新材料有限公司34 分钟前
稀土抑烟剂:为墙板安全加分,守护家居与办公环境
科技·安全·全文检索·生活·能源
掘根37 分钟前
【仿Muduo库项目】Buffer模块设计实现
服务器·网络·tcp/ip
小许学java37 分钟前
网络原理-HTTP/HTTPS
java·网络·http·https
9稳38 分钟前
基于PLC的垃圾车自动收集装置控制系统设计
开发语言·网络·数据库·嵌入式硬件·plc
龙亘川41 分钟前
2027 年 1 月 1 日起施行!GB46864 新规落地,二手电子产品信息清除有了 “铁规矩”,你的隐私不再 “裸奔”
网络·安全·web安全