Je dois faire quelque chose d'assez inhabituel: exécuter manuellement un exécutable elf. C'est à dire. charger toutes les sections dans les bons endroits, interroger main() et l'appeler (et nettoyer ensuite). L'exécutable sera lié statiquement, il n'y aura donc pas besoin de lier les bibliothèques. Je contrôle également l'adresse de base, donc pas de soucis sur les conflits possibles.Chargeur ELF de l'espace utilisateur Linux
Alors, y a-t-il des bibliothèques pour cela?
Je trouve OSKit et son liboskit_exec, mais projet semble être mort depuis 2002.
Je suis OK avec la prise des parties de projets (dans le respect des licences, bien sûr) et de les adapter à mes besoins, mais comme je Suis tout à fait un noob dans le monde Linux, je ne sais même pas où trouver ces pièces! :)
PS. J'ai besoin de ça pour la plateforme ARM.
UPD Eh bien, la question du chargement des elfs semble exiger quelques bonnes connaissances à ce sujet (soupir), donc je suis à la recherche de spécifications et de manuels. Et je pense que je vais m'en tenir à bionic/linker et libelfsh. Merci les gars!
résultats résumés:
- libelf: http://directory.fsf.org/project/libelf/
- elfsh et libelfsh (font maintenant partie de eresi): http://www.eresi-project.org/
- elfio (autre bibliothèque elfe): http://sourceforge.net/projects/elfio/
- OSKit et liboskit_exec (pas à jour): http://www.cs.utah.edu/flux/oskit/
- bionique/linker: https://android.googlesource.com/platform/bionic
* bump * J'ai exactement le même problème (aussi sur ARM), mais j'ai aussi besoin de faire une relocalisation. –