为什么需要重定位表?

逆向工程 聚乙烯
2021-07-06 19:53:16

我知道重定位表存在于图像未在其首选地址加载时的情况,但如果图像未在其首选地址加载,是否不需要相对于实际加载地址重新定位所有内容?这不是 RVA 的全部意义吗?是什么使在重定位表中有条目的地址不同?

(我的第一个问题,如果我犯了错误,请指出错误。谢谢。)

1个回答

相对虚拟地址 = RVA 它在地址空间内是相对的

jmp here+78 总是从这里跳+78

现在跳转 402078 将始终尝试跳转到 402078

这只会在 402078 的首选加载地址是 400000 并且二进制文件时成功

加载 400000

如果它以 600000 加载,则该地址空间中不存在 402078,将导致访问冲突

这里需要重定位表

加载二进制文件时加载器将检查首选地址并在加载时将 402078 修补为 602078

包含相关信息的帖子