2009-12-18 6 views
2

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

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.

+0

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

+0

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

Questions connexes