PE文件头常用字段总结

本文详细介绍了PE文件格式的关键部分,包括PE文件头、入口点、数据目录表等,并解释了如何通过这些信息来理解PE文件的加载过程及重定位表的作用。

文件头 3Ch偏移处:PE文件头的地址

PE文件头28h偏移处:入口点的RVA
2Ch:代码段RVA

30h处:data段RVA
34h处:默认装入地址

38h,3Ch:内存中alignment(一般为1000h,一页),文件中alignment(一般为200h)
50h:image尺寸
78h:数据目录表开始
目录表结构: 8bytes,DWORD 保存起始RVA,DWORD保存 数据表长度
80h:输入表的目录表
输入表的IID结构: 5个DWORD,第一个OriginFirstThunk,最后一个FirstThunk,分别指向INT和IAT,都是IMAGE_HTUNK_DATA数组
IMAGE_THUNK_DATA:1个DWORD的union,一般为表示函数名字符串的RVA,或直接为函数地址
函数名字符串:IMAGE_IMPORT_BY_NAME:WORD hint(2字节)+ ascII 串


在OEP处设段,抓取的dump映像里面,IAT已经被外壳填充为真实的输入函数地址,所以要重构输入表,把他还原为INT的形式,运行时由PE加载器去枚举INT,获取真正的输入函数地址,填充IAT

 

A0h:重定位表的目录表

重定位表结构: DWORD 起始RVA,DWORD 数据长度,WORD数组,偏移值 。重定位表一般按页面组织

起始RVA+偏移值低12位=要重定位的地址的RVA,起始RVA一般为1000h,因为要重定位的基本都是代码段里面的直接地址引用之类。 一般只有DLL要用到重定位表,EXE都能加载到预定地址0x400000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值