首页
社区
课程
招聘
[旧帖] [求助]optional header 中的 data directory 的问题? 0.00雪花
发表于: 2008-6-6 14:14 3980

[旧帖] [求助]optional header 中的 data directory 的问题? 0.00雪花

2008-6-6 14:14
3980
data directory 中的 输入表虚拟地址是怎么计算出来的呢?

typedef struct _IMAGE_DATA_DIRECTORY {
    DWORD   VirtualAddress;
    DWORD   Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;

计算虚拟地址的时候,不是要载入内存吗? 但是为什么编译器在编译的时候,就能生成出虚拟地址RVA呢? 这又是怎么计算出来的呢? 烦请高手帮忙解答

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我顶我顶我再顶
2008-6-6 17:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
顶顶顶顶顶顶顶顶顶
2008-6-6 20:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
高手们,我需要你们的帮助,我需要你的们的拯救
2008-6-6 20:33
0
雪    币: 236
活跃值: (16)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
应该没有什么标准吧,编译器通过编译程序然后决定RVA的位置吧
真是个怪问题。
看看高手怎么回答。
2008-6-6 22:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是啊,只有期待高手了
2008-6-7 14:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
难道我真的要去啃 链接器原理吗?
2008-6-8 00:21
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
8
不明白楼主问的是什么问题。
程序被编译并链接时当然决定了输入表输出表等要放在什么地方,也决定了要分多少个区段,以及每个区段要载入的内存偏移。
在每个区段的IMAGE_SECTION_HEADER里面,就写明了各个区段的虚拟偏移(在内存中载入时的偏移)和大小,以及文件偏移和大小。因此,链接完成后,各个区段,包括区段里的数据(包括输入表等),在内存载入时的偏移量就可以确定了。
楼主应该好好看看PE文件结构的知识,特别是文件偏移与内存偏移是如何换算的,相信这样可以解答你的疑惑。
2008-6-8 01:34
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
RVA不是实际地址,只是一个相对偏移,所以不用载入就可以决定了
2008-6-8 07:58
0
游客
登录 | 注册 方可回帖
返回
//