2010-02-24 3 views
5

J'essaie d'écrire le programme de chargement exécutable Elf pour ARM platform.I ont quelques requêtes iciComment charger dynamiquement un fichier exécutable ELF relocable?

1) Comment générer repositionnable ou la position exécutable ELF indépendant (ce sont les compilateur & options de l'éditeur de liens) 2) Comment charger ce ci-dessus fichier exécutable ELF généré.

Comme astart, j'ai fait du travail et ça marche bien. J'utilise une adresse fixe pour RO_Base et je ne divise pas les Segments en construisant (n'utilisant aucune option --split), de sorte que j'obtiens un code contigu, des données, des sections bss. Après cela, je charge l'elfe à la même adresse que RO_Base et j'exécute le code comme nouveau thread. Cela fonctionne bien. Je n'ai fait aucune relocalisation etc ...

Maintenant je veux le rendre dynamique et capable de charger n'importe quelle adresse en générant ELF relocatable et en modifiant le chargeur aux changements appropriés. S'il vous plaît aidez-moi à le faire fonctionner.

Merci,

Répondre

0

Juste utiliser -r drapeau éditeur de liens pour faire fichier repositionnable.

Utilisez quelque chose comme this pour déplacer le fichier en mémoire.

0

C'est un grand sujet. Je viendrai à la référence "Linkers and Loaders" de John R. Levine. Voici le manuscrit du livre, Chapter 7 Relocation, j'espère qu'il est utile

Questions connexes