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

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

2020-6-19 08:45
2201

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

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


 


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

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 830
活跃值: (9806)
能力值: ( 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
详情参考我博客
https://www.cnblogs.com/iBinary/p/9733703.html

最后于 2020-6-19 09:11 被TkBinary编辑 ,原因:
2020-6-19 09:07
1
雪    币: 830
活跃值: (9806)
能力值: ( 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
游客
登录 | 注册 方可回帖
返回
//