类型:读书笔记
知识来源:《****核心原理》第13章(下称作《逆向》)
阅读时间: 2018年1月8日
状态:未完成
注:下划线划出的为书中原话或者部分为原话。

什么是PE文件

PE文件是Windows操作系统下使用的可移植的可执行文件格式。
PE(Portable Executable) Portable:便携的(易于移植) Executable:可执行的

PE文件格式

·PE文件的种类

【计科】[PE文件格式(概述)][笔记]
(表格来自《逆向》)

·PE文件的基本结构

《逆向》以记事本(32位xp系统下的notepad.exe)程序为例
(可以用Hex Editor打开记事本程序查看,我暂时还没有装xp的虚拟机,暂时不能附图片了)
下图是《逆向》书中描述notepad.exe文件加载到内存时的情形
【计科】[PE文件格式(概述)][笔记]
PE头:
      从DOS头(DOS header)到节区头(Section header)是PE头部分
PE体:
      PE头其下的节区称作PE体
偏移和VA:
    文件中使用偏移(offset),内存中使用VA(Virtual Address)来表示位置,文件加载到内存中,就会产生一些变化(节区的大小,位置等)
NULL填充:
    图上灰色取余是NULL填充(NULL padding),和汇编中的nop使数据或代码对齐一样,使用了“最小基本单位”这一概念,文件/内存中的节区的起始位置应该在各文件/内存最小单位的倍数上。
VA&RVA:
   VA指的是进程虚拟内存的绝对地址,RVA指从某个基准位置开始的相对地址。VA与RVA满足下面的换算关系。
RVA+ImageBase=VA
PE头内部信息大多以RVA形式存在。这种以相对的方式保存的优点,你可以在学习的过程中慢慢体会到。

相关文章: