重定位表
dll加载的时候ImageBase可能会相同然后操作系统负责将它加载在内存的其他地方。
这个时候有的不是RVA的地址就会出问题,如果不修正就没办法用了。
重定位表就是记录了硬编码中需要修改的地址,如果没有在对应的ImageBase展开,就需要修改
位置在扩展Pe头的最后一个成员数组中的第六个结构体里(Image_diretory_basereloc)
重定位表的结构体:_IMAGE_BASE_RELOCATION
细节先省略啦。
dll加载的时候ImageBase可能会相同然后操作系统负责将它加载在内存的其他地方。
这个时候有的不是RVA的地址就会出问题,如果不修正就没办法用了。
重定位表就是记录了硬编码中需要修改的地址,如果没有在对应的ImageBase展开,就需要修改
位置在扩展Pe头的最后一个成员数组中的第六个结构体里(Image_diretory_basereloc)
重定位表的结构体:_IMAGE_BASE_RELOCATION
细节先省略啦。
本文来自博客园,作者:Mz1,转载请注明原文链接:https://www.cnblogs.com/Mz1-rc/p/15157805.html