Je suis plus intéressé par l'extraction de la version de l'architecture, c'est-à-dire v5, v5T, etc .. J'ai référencé Elf for the ARM Architecture Section 4.3.6 Build Attributes qui a été utile pour me mettre au courant. Je peux trouver le début de la section .ARM.attributes et peut analyser les premières parties clés de l'information: Format-version, Section-length, et vendeur-nom + octet nul, pas de problème. Je me perds un peu après ça. Voici un instantané que j'ai exécuté en utilisant hexdump -vC
sur un elf compilé avec arm-linux-gnueabi-gcc -march=armv5t -O myprog.c -o myprog
pour une architecture ARMv5T. Le début de la section est 77f0b.Comment puis-je interpréter les données dans .ARM.attributes dans un ELF pour obtenir la version de l'architecture et d'autres attributs?
Nous pouvons voir: Format version: A
Section longueur: 0x29
Fournisseur nom: "aeabi"
De toute évidence, 5T est disponible en ASCII former à 77f1C, mais je ne sais pas comment interpréter l'étiquette que j'ai besoin d'analyser pour obtenir cette valeur.
Note: Oui, je comprends qu'il y a des outils que je peux utiliser pour ce faire, mais j'ai besoin d'extraire l'information dans l'application que j'écris. Il analyse déjà les informations nécessaires pour le rendre aussi loin.
Question supplémentaire: Est-ce que PowerPC a des étiquettes similaires? Je n'ai trouvé aucune documentation à l'appui.