我已经阅读pecoff_v83
了微软的文档。在.reloc
部分部分,我已阅读:
修正表包含图像中所有修正的条目。可选头中的总修复数据大小是修复表中的字节数。修正表被分成修正块。每个块代表一个 4K 页面的修正。每个块必须从 32 位边界开始。
而且,我知道每个块都包含:页面 RVA 和块大小。每个块大小包含:类型和偏移量。
我用过peview
:
我有几个问题:
“每个块必须以 32 位边界开始” - 我不明白,你能解释一下吗?
PE文件有用
IMAGE_BASE_RELOCATION
吗?从这个SO 问题('所以大部分二进制文件都是由 reloc 表组成的? '):
如果您的程序频繁访问全局变量和常量,它将有一个巨大的重定位表,因为加载程序需要更新的地方太多了
加载器如何使用重定位表并更新它?