首页
社区
课程
招聘
未解决 [求助]初学小白求助,PE虚拟地址和文件偏移地址的换算
发表于: 2020-6-19 08:45 2276

未解决 [求助]初学小白求助,PE虚拟地址和文件偏移地址的换算

2020-6-19 08:45
2276

大哥们指点一下,为啥相对虚拟地址 100F 转换成 文件偏移地址是 60F 而不是40F,搞迷糊了

" class="anchor" href="# ">


 


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

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 364
活跃值: (10653)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
2

PE 分为两种状态,第一种 内存状态, 第二种文件中存储的状态.
内存对齐与文件对齐不一致才要进行转换
1. 内存地址 - IMAGEBASE = rva  相对偏移地址. 计算出了 内存地址 距离imagebase的相对偏移.  但是我们不知到落入那个节中. 所以还需要计算出RVA 与节开始的 差值偏移
2. RVA 判断落入那个节中  差值  = RVA - 节.VirtuallAddress
3.差值偏移是固定的. 是距离这个节的偏移. 不管你是文件中也好. 内存中也好.都是一样的.
4.如果是想要找内存转文件: 那么 FOA = 差值偏移 + 节.PointToRawData
5.如果文件想转到内存. 
   1.判断在那个节中
   2.计算出差值偏移
   3.差值偏移 +节.VirtuallAddress = RVA
   4.RVA + IMAGEBASE = VA
详情参考我博客
dadK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2U0L8X3u0D9L8$3N6K6i4K6u0W2j5$3!0E0i4K6u0r3K9f1u0A6L8X3q4J5P5g2)9J5c8Y4m8Q4x3V1j5&6y4K6x3K6y4K6l9K6i4K6u0W2K9s2c8E0L8l9`.`.

最后于 2020-6-19 09:11 被TkBinary编辑 ,原因:
2020-6-19 09:07
1
雪    币: 364
活跃值: (10653)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
3

  无

最后于 2020-6-19 09:08 被TkBinary编辑 ,原因: 论坛卡了发了两次
2020-6-19 09:07
0
雪    币: 58
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢TkBinary老哥的指导,以前默认以为.text段在0x400,用软件查了一下这个文件的不一样,是在0x600,搞清楚了,谢谢了
2020-6-19 09:55
0
雪    币: 58
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢TkBinary老哥的指导,以前默认以为.text段在0x400,用软件查了一下这个文件的不一样,是在0x600,搞清楚了,谢谢了
2020-6-19 09:56
0
游客
登录 | 注册 方可回帖
返回