PE 32位
PE+ ,PE32+ 64位
可执行 exe 、scr
驱动 sys、vxd(调试器、服务等执行)
库 dll、ocx、cpl、drv
对象文件 obj
DOS头(DOS header)到节区头(Section header) 称作 PE头
其下 称作 PE体
文件中 偏移 offset
内存中 虚拟地址VA
文件 加载到 内存 节区的 大小 和 位置 等会发生变化
.text 代码
.data数据
.rsrc资源
PE头 与 各节区的 尾部 存在 一个区域 ,为NULL填充(NULL padding)
原因: 类似于对其这个概念,文件/内存中节区的 起始位置 应为 文件/内存 最小单元 倍数
两段分别为PE头,PE体
VA&RVA
VA 是指绝对地址
RVA是指相对地址
基准地址(ImageBase)+ RVA = VA
PE文件主要为 dll 加载到进程虚拟地址的特定位置是,会与其他dll冲突 ,必须要重定位(relocation) ,用相对的才可靠
32位 winos中 每个进程均分配有4GB 虚拟内存 VA值得取值范围是0000 0000~FFFF FFFF。
边看边记的,有些凌乱,以上重点是记忆