基础篇-初步认识PE格式

时间:2021-01-02 15:34:51

1 PE(Portable Executable)格式,是Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式。Portable 是指对于不同的Windows版本和不同的CPU类型上PE文件的格式是一样的,当然CPU不一样了,CPU指令的二进制编码是不一样的。只是文件中各种东西的布局是一样的。
2入口点
PE文件执行时的入口点,也就是说,程序在执行时的第一次代码地址应该就是这个值。有点像8086汇编语言中iend start中start指向的入口地址。
3文件偏移地址
当PE文件存储在磁盘上的时候,各数据的地址称作文件偏移地址。文件偏移地址从PE文件的第一个字节开始计时,起始值为0.
4基地址
所谓基地址,顾名思义就可以理解为基本地址,他是相对偏移量的计算基准。
在实模式下,通常都是以段+偏移来定位地址,因此说,这时,段地址是基地址的一种。但是在堆栈上,常常不以ss寄存器来作为定址基准,而是经常用bp寄存器来定址,因此,此时堆栈段的段址就不能说是基地址
而保护模式下,不再有“段”的概念,这时的段寄存器里保存的是“段选择子”,根基地址根本就是两回事。