首页
社区
课程
招聘
[旧帖] [求助]关于文件偏移地址和RVA的关系 0.00雪花
发表于: 2010-3-15 22:42 1552

[旧帖] [求助]关于文件偏移地址和RVA的关系 0.00雪花

2010-3-15 22:42
1552
在0day中failwest是这样表示他们的关系的
    文件偏移地址=RVA-节偏移

    节偏移是由于磁盘数据的组织方式和内存数据组织方式不同造成。如磁盘以0x200字节为基本单元,而内存以0x1000字节为数据单元,
   

    我的疑惑:
    磁盘和内存他们的偏移地址都是以字节来论的,比如一个文件的代码段为一百字节,
    那么它的文件偏移地应该从0到99(十进制),
    如果映射到内存中的RVA应该是从0到999(十进制),但从100到999的数据根本不会用到啊,所以有效数据的文件偏移和RVA应该相等才对啊。
   

    本人乃一介菜鸟,说的错的地方请大家指出。不胜感激!!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 133
活跃值: (587)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
你说的我认为是对的
正因为加载到内存后对齐方式的改变使代码段中出现了空隙 才能有远程把代码注入到空隙而不改变PE映射的大小  这个代码注入方法
2010-3-15 23:00
0
雪    币: 236
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
但为什么会有
     文件偏移地址=RVA-节偏移
     我觉得就应该他们的关系应该根据具体情况而定啊。
2010-3-15 23:13
0
雪    币: 133
活跃值: (587)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
文件偏移地址=RVA-节偏移
这个文件偏移地址应该是 相对于文件中节的开始位置而不是相对于文件的开始 这样应该就能理解了 ( 自己的理解。。)
2010-3-16 09:49
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
关于PE文件在磁盘和在内存中的映像的可以看一下这张图

不过我觉得“文件偏移地址=RVA-节偏移”这种说法可能会有点不恰当,应该是“xx的文件偏移地址 = (xx的RVA-节的RVA) + 节的文件偏移”,这样就比较好理解了。
或许“节偏移 = 节的RVA - 节的文件偏移”?说实话,我没听过"节偏移"这个词语……或许lz应该把文章地址给出来,这样就能知道作者对节偏移的解释了。
2010-3-16 10:06
0
雪    币: 236
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
在0day中的第十页和十一页
截图如下:




请各位帮忙解释一下。
上传的附件:
2010-3-16 11:36
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这不就ok了,只要看最下面对0x00404141的计算就清楚了,“文件偏移量 = 0x00404141 - 0x00400000 - 0x1000 + 0x400”,其实就是“xx的文件偏移 = xx的VA - 基地址 - 节的RVA + 节的文件偏移”,其中“xx的VA-基地址”就等于xx的RVA,跟我在上面说的那个是一样的,仔细看一下5L的那张图就清楚了。
2010-3-16 14:04
0
雪    币: 236
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
终于想明白了,谢谢大家啦。呵呵。
2010-3-17 12:02
0
游客
登录 | 注册 方可回帖
返回
//