笔记:PE结构(3)可选头解析*

本文详细解析了PE文件结构中的可选头(_IMAGE_OPTIONAL_HEADER),包括Magic标记、SizeOfCode、SizeOfInitializedData、SizeOfUninitializedData等字段的作用,以及程序入口点AddressOfEntryPoint、内存映像基址ImageBase和对齐参数的意义。讨论了这些字段在文件和内存中的对齐规则,以及它们对程序运行的影响。
摘要由CSDN通过智能技术生成
struct _IMAGE_OPTIONAL_HEADER {
0x00 WORD Magic; 标记
0x02 BYTE MajorLinkerVersion;
0x03 BYTE MinorLinkerVersion;
0x04 DWORD SizeOfCode;*   所有代码节的和(代码可能有多个节),必须是 FileAlignment 整数倍 没什么用
0x08 DWORD SizeOfInitializedData;*已初始化数据大小的和,必须是 FileAlignment 整数倍 没什么用
0x0c DWORD SizeOfUninitializedData;*未初始化数据大小的和,(一般单词前面加Un都是反义词)
                                                                必须是 FileAlignment 整数倍(同上2个都是编译器填的)
0x10 DWORD AddressOfEntryPoint; 程序入口点 OEP
0x14 DWORD BaseOfCode;* 代码开始的基址,编译器填的 没用(代表被人修改后这个值没意义)
0x18 DWORD BaseOfData;* 数据开始的基址,编译器填的 没用(代表可以任意修改)
0x1c DWORD ImageBase; 内存映像基址/模块基址/模块句柄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值