重新定位链接的程序

时间:2013-07-04 08:26:58

标签: linker elf relocation

是否可以将已链接的elf文件重定位到另一个地址并更新内部引用?

例如,将一个静态链接的elf文件链接在0x50000,如何将其移动到0x1000000并更新指针&地址?

1 个答案:

答案 0 :(得分:2)

  

是否可以将已链接的elf文件重定位到另一个地址

一般来说:没有。链接器会丢弃重定位记录,这是更新可执行文件中的内部引用所必需的。

现在,如果您的可执行文件不使用全局数据并且没有获取任何函数的地址,您所在的架构JMP s和CALL s为pc - 相对,然后可能只更新PT_LOAD中的.e_entry段和Elf{32,64}_Ehdr