大哥们指点一下,为啥相对虚拟地址 100F 转换成 文件偏移地址是 60F 而不是40F,搞迷糊了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
PE 分为两种状态,第一种 内存状态, 第二种文件中存储的状态.内存对齐与文件对齐不一致才要进行转换1. 内存地址 - IMAGEBASE = rva 相对偏移地址. 计算出了 内存地址 距离imagebase的相对偏移. 但是我们不知到落入那个节中. 所以还需要计算出RVA 与节开始的 差值偏移2. RVA 判断落入那个节中 差值 = RVA - 节.VirtuallAddress3.差值偏移是固定的. 是距离这个节的偏移. 不管你是文件中也好. 内存中也好.都是一样的.4.如果是想要找内存转文件: 那么 FOA = 差值偏移 + 节.PointToRawData5.如果文件想转到内存. 1.判断在那个节中 2.计算出差值偏移 3.差值偏移 +节.VirtuallAddress = RVA 4.RVA + IMAGEBASE = VA详情参考我博客https://www.cnblogs.com/iBinary/p/9733703.html
无