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
1万+

被折叠的 条评论
为什么被折叠?



