Is it possible to relocate an already linked elf file to another address
In general: no. The linker discards relocation records, required to update internal references within the executable.
Now, if your executable uses no global data and doesn't take addresses of any functions, and you are on an architecture where JMP
s and CALL
s are pc
-relative, then it might be possible to just update the PT_LOAD
segments and .e_entry
in the Elf{32,64}_Ehdr
.