首页
社区
课程
招聘
RVA是什么意思?
发表于: 2011-8-8 20:50 12333

RVA是什么意思?

2011-8-8 20:50
12333
这几天在学习PE文件,但是有几个名词阻挡了我的学习步伐
1.入口点
2.基地址
3.物理地址
4.虚拟地址
5.相对虚拟地址

这几个把我弄懵了,希望各位老师帮助我
谢谢

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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 56
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1.字面意思
2.初始内存地址。exe一般为400000h,dll一般为10000000h
3.文件存储在磁盘上时,相对于文件头的地址
4.加载入内存后的地址
5.内存中相对于基地址的偏移
2011-8-8 21:01
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
入口点EntryPoint,指程序执行的第一行代码的地址,
物理地址,文件存在磁盘上地址
虚拟地址,文件映射到内存中地址
基地址,就是程序映射内存的初始位置
相对虚拟地址,就是程序映射到内存时某数据的地址相对于基地址的偏移量

我也是个新手,上面是我对这几个词汇的理解
2011-8-8 21:05
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还是不太清楚,
我主要是对文件在硬盘上和加载到内存这个过程不明白
也就是说文件在硬盘上的地址和装入内存后的地址之间有啥关系?
2011-8-8 21:05
0
雪    币: 56
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
PE文件在装入内存后地址的相对偏移基本不变。RVA是内存中相对于PE文件装入地址的偏移量,例如EXE在400000h出装入内存,但是代码段开始于401000h,则代码段的RVA就是1000h。其他的数据段,与代码段类似,但装入地址不同。
2011-8-8 21:15
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
6
relative virtual address 相对虚拟地址 ,pe文件装载到内存中的地址叫virtual address,以某个地址为起点,其他地址相对它的偏移叫 relative virtual address,通常这个起点就是指pe文件载入内存后的首地址。文件中的地址你拿winhex打开一个pe文件看看,再用od打开它对比一下就清楚了。如有误导概不负责。
2011-8-8 21:24
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我也正在看第三版
1.入口点:就是程序的入口点,(程序)第一条执行指令的地址。

2.文件偏移地址:就是程序存在电脑(磁盘)上,各个数据的地址,0字节开始,第一字节偏移地址就是0,第二个就是1,第三个就是2,················

3.虚拟地址(内存偏移地址):程序运行的了那些地址,像程序加载到OD里,那些8位数的地址(16进)。

4.基址?,我也不知道,什么是被映射到指定内存地址中,映射我也头昏的,刚接触。
2011-8-8 21:31
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
RVA相对虚地址(Relative Virtual Addresses) 在 PE 格式中,有很多不同的区块需要定位,但是不可以指明一个绝对位置,所以 PE 里使用了 RVA。RVA 是一个相对于 Base address (基底位置) 的值,例如一个 PE 被载入到 0x400000,这个 PE 有一个区块的RVA 是 0x1000,那么这个区块在内存的实际位置便是 0x401000
2011-8-8 21:36
0
雪    币: 174
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
说到虚拟地址,没人想到操作系统的内存管理?
2011-8-9 09:37
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢大家的解答
还有几个疑问:
1.虚拟地址,是不是程序运行后装入内存时的首地址?
2.基地址,也是程序运行时装入内存的地址
以上这两个概念一样吗?

还有,我怎么给回答好的那个朋友看雪币?
2011-8-9 13:31
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
进程加载PE文件的时候要将文件内容读到进程中的某个地址,基地址就是这个首地址;
虚拟地址是个概念,不是指某一个地址,PE文件里每行代码都有一个虚拟地址.
2011-8-9 15:46
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谢谢大家,
基本明白了
谢谢各位,
分数都分给你们了
2011-8-10 13:20
0
雪    币: 705
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习l !!
2019-5-22 15:34
0
游客
登录 | 注册 方可回帖
返回
//