12
votes

Chargeur elfe de l'espace utilisateur Linux

Je dois faire une chose plutôt inhabituelle: exécuter manuellement une exécutable elfe. C'est à dire. Chargez toutes les sections dans les bons endroits, interrogez-la () et appelez-le (et nettoyez-le puis). L'exécutable sera statiquement liée, il n'y aura donc pas besoin de relier les bibliothèques. Je contrôlais également l'adresse de base, donc pas de soucis sur les conflits possibles.

Alors, il y a des bibliothèques pour cela?

J'ai trouvé Oskit et son libellit_exec, mais le projet semble être mort depuis 2002.

Je vais bien avec prenant des parties de projets (respectant les licences, bien sûr) et 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 plate-forme de bras.

upd Eh bien, la question de chargement des elfs semble exiger de bonnes connaissances à ce sujet (SIGH), donc je suis prêt à lire certaines spécifications et manuels. Et je pense que je vais coller à Bionic / Linker et à la libelo. Merci les gars!

Résultats résumés:


1 commentaires

Bump J'ai exactement le même problème (aussi sur le bras), mais je dois aussi faire de la relocalisation.


4 Réponses :


2
votes

Un APT-cache Recherche Suggestions Libelf1 , libelfg0 et / ou libelfsh0 . Je pense que le programme elfsh (dans le package de noms de noms) peut être un exemple pratique intéressant d'utiliser libelfsh0 .

Je n'ai essayé aucun moi-même, mais j'espère qu'ils pourraient être utiles. Bonne chance: -)


0 commentaires

0
votes

Jetez un coup d'oeil à libelf pour lire le format exécutable. Vous allez avoir des problèmes avec cela, je pense.

sonne comme, car vous n'avez pas besoin de bibliothèques pour quoi que ce soit, pourquoi pas seulement MmeAp votre exécutable, définissez des données sur diverses zones de mémoire et JMP / B dans?

Je ne sais pas si le bras a un équivalent nx-bit, mais la peine d'être vérifiée.


0 commentaires

1
votes

Android de Google, dans sa mise en œuvre "Bionic" LIBC, dispose d'une chargeuse elfe complètement réimpliquée. C'est assez propre et probablement une meilleure source que Gilbc si vous recherchez quelque chose de simple.


0 commentaires