Cela peut être une question de base, mais je voulais demander, car je ne suis pas au courant à ce sujet. Si j'ai un fichier binaire qui a été créé sur HP-UX et soudainement je prends ce fichier binaire sur Linux ou disons sur n'importe quelle plate-forme comme AIX ou Sun Solaris et si je veux vérifier les détails de la binaire quant à quelle plate-forme il a été développé, comment pourrais-je le faire sur n'importe quelle plate-forme? ou y at-il un moyen générique de le faire sur toutes les saveurs d'unix?requête sur unix exécutables
2
A
Répondre
6
La commande file
vous donne des informations sur n'importe quel fichier, et pas seulement sur les exécutables.
Sur executables, il donne des résultats tels que:
MS Windows PE 32 bits exécutable de la console Intel 80386 non délocalisables
ou
ELF 32-bit MSB, SPARC, version 1 (SYSV), liée statiquement, non dénudée
0
Selon la configuration, objdump
peut être utilisé sur une grande variété de formats binaires.
$ objdump -f flex/bin/flashplayer flex/bin/flashplayer: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x0804fb20 $ objdump -f flex/bin/adl In archive flex/bin/adl: flex/bin/adl:powerpc:common: file format mach-o-be architecture: powerpc:common, flags 0x00000012: EXEC_P, HAS_SYMS start address 0x00001c88 flex/bin/adl:i386: file format mach-o-i386 architecture: i386, flags 0x00000012: EXEC_P, HAS_SYMS start address 0x00001e64 $ objdump -f flex/bin/adl.exe flex/bin/adl.exe: file format pei-i386 architecture: i386, flags 0x0000012f: HAS_RELOC, EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_LOCALS, D_PAGED start address 0x004014c0
C'est un binaire ELF Linux x86, un PPC gras et x86 binaire Mach-O, et un exécutable Windows, il suffit de donner quelques exemples.
Mais est ce 'objdump' est présent sur tous les saveurs unix? en ce qui me concerne, je ne peux pas le trouver dans AIX. – Vijay
J'ai dit "binutils objdump", c'est-à-dire celui du projet GNU binutils; Il est disponible pour presque toutes les plateformes, bien qu'il ne fasse pas partie de l'installation par défaut sur les systèmes non libres. – ephemient