[笔记]认识PE格式

PE格式
windows可执行文件(exe,dll)是PE(Protable Executable)格式。
PE文件的内容被分割为不同的区块(Section),块中包含代码和数据

.text 编译或编译结束时产生的一种块,内容为全部指令代码
.rdata 运行期的只读数据
.data 初始化的数据块
.idata 输入表——包含其他外来dll的函数及数据信息
.rsrc 模块的全部资源 图标 菜单 位图等等

PE文件在 磁盘 上的数据与在 内存 中的数据结构是一致的
装载一个可执行文件到内存时 将PE文件的某一部分映射到 地址空间 中

相关名词解释
1.入口点(Entry Point)
程序执行的第一行代码

2.文件偏移地址(File Offset)
当PE文件储存在磁盘上时,各数据的地址称作文件偏移地址。
File Offset从PE文件第一个字节开始计数,起始值为0

3.虚拟地址(Virtual Address,VA)
Windows程序运行在386保护模式下,程序访问存储器所使用的逻辑地址 称为虚拟地址,又称内存偏移地址(Memory Offset)。
虚拟地址可以写成“段:偏移量”形式,例如:0167:0040100A 
其中
0167:是段选择子,其数据保存在CS段选择器中。同一程序在不同系统环境下,此值可能不同,一般不用关心
0040100A:表示内存的虚拟地址,一般来说,同一程序的同一条指令在不同的系统环境下,此值相同

4.基地址(ImageBase)
由PE文件本身设定。Visual C++创建的exe默认基地址为00400000h,dll默认为10000000h。
链接应用时使用程序的/BASE选项,可修改默认基地址。

LordPE
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值