Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以将已链接的 elf 文件重新定位到另一个地址并更新内部引用?
例如,有一个静态链接的 elf 文件链接在 0x50000,我怎样才能将它移动到 0x1000000 并更新指针和地址?
是否可以将已链接的 elf 文件重新定位到另一个地址
一般来说:没有。链接器丢弃重定位记录,这是更新可执行文件中的内部引用所必需的。
现在,如果您的可执行文件不使用全局数据并且不获取任何函数的地址,并且您处于JMPs 和CALLs 是-relative的体系结构上pc,那么可能只需更新.PT_LOAD.e_entryElf{32,64}_Ehdr
JMP
CALL
pc
PT_LOAD
.e_entry
Elf{32,64}_Ehdr