是否可以将已链接的elf文件重定位到另一个地址并更新内部引用?
例如,将一个静态链接的elf文件链接在0x50000,如何将其移动到0x1000000并更新指针&地址?
答案 0 :(得分:2)
是否可以将已链接的elf文件重定位到另一个地址
一般来说:没有。链接器会丢弃重定位记录,这是更新可执行文件中的内部引用所必需的。
现在,如果您的可执行文件不使用全局数据并且没有获取任何函数的地址,和您所在的架构JMP
s和CALL
s为pc
- 相对,然后可能只更新PT_LOAD
中的.e_entry
段和Elf{32,64}_Ehdr
。