Tengo que hacer algo bastante inusual: ejecutar manualmente un ejecutable elf. Es decir. cargue todas las secciones en los lugares correctos, busque main() y llámelo (y luego limpieza). El ejecutable se vinculará estáticamente, por lo que no será necesario vincular las bibliotecas. También controlo la dirección base, por lo que no me preocupan los posibles conflictos.Linux user-space ELF loader
Entonces, ¿hay alguna biblioteca para eso?
He encontrado OSKit y su liboskit_exec, pero el proyecto parece estar muerto desde 2002.
estoy bien con la toma de partes de proyectos (respetando licencias, por supuesto) y adaptándolos a mi necesidad, pero como yo Soy bastante novato en el mundo de Linux, ¡ni siquiera sé dónde encontrar esas partes! :)
PS. Lo necesito para la plataforma ARM.
UPD Bueno, la cuestión de cargar elfs parece requerir un buen conocimiento al respecto (suspiro), así que estoy fuera para leer algunas especificaciones y manuales. Y creo que me quedaré con bionic/linker y libelfsh. ¡Gracias chicos!
resultados resumidos:
- libelf: http://directory.fsf.org/project/libelf/
- elfsh y libelfsh (son ahora parte de eresi): http://www.eresi-project.org/
- elfio (otra biblioteca elf): http://sourceforge.net/projects/elfio/
- OSKit y liboskit_exec (obsoleta): http://www.cs.utah.edu/flux/oskit/
- biónico/enlazador: https://android.googlesource.com/platform/bionic
* bump * Tengo exactamente este mismo problema (también en ARM), sin embargo, también tengo que hacer la reubicación. –