首页
社区
课程
招聘
[旧帖] [求助]问一个关于PE文件格式的问题 0.00雪花
发表于: 2008-5-28 21:34 4463

[旧帖] [求助]问一个关于PE文件格式的问题 0.00雪花

2008-5-28 21:34
4463
在PE文件头里的数据目录中,DataDirectory[1]应该是指示导入目录RVA地址的,
可是在用Loadpe打开记事本发现一个问题,
DataDirectory[1]中的RVA值是7604,可是实际上数据目录数组的起始地址却是6A04,不知道是怎么回事,简而言之,就是不能用DataDirectory[1]中的RVA值遍历EXE文件中调用的DLL文件
请大牛指点,这是怎么回事

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 107
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
7604 是RVA 值, 6A04 是OFFSET 值
对于notepad 而言,它的RVA 到offset 的转换是这样的
节表中指定 RVA 1000 对应file OFFSET 400
故: RVA 7604 = 0x7604 - 0x1000 +0x400 = 0x6a04
2008-5-29 08:36
0
雪    币: 200
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

主要是公式要记牢固,你这个是逆向工程核心原理的书,里面提到的公式是这个:RAW - POINTEERTORAWDATA = RVA - VIRTUALADDRESS

这个公式变形之后是这样的,RAW = RVA -VA + POINTERtorawdata,我开始对这个公式并不太理解,主要是看另外一个公式理解下来的,主要计算文件偏移地址 = VA - Imagebase - 节偏移,变形等于 : 文件偏移地址 =  RVA - (VO-RO),其中VO 和RO指的就是节偏移。所以你知道了RVA = 7604,同时这个所在区段是.text内,所以使用文件偏移地址公式 ,7604-(1000-400) = 6A04。文件偏移地址是这个6A04。计算文件偏移地址RAW ,必须先查找RVA所在区段,然后再根据公式进行计算就好。

2020-5-6 17:09
0
游客
登录 | 注册 方可回帖
返回
//