views:

149

answers:

2

This might be a basic question but i wanted to ask since i am not aware about it.

if i have a binary file which was was created on HP-UX and suddenly i take this binary file on linux or let's say in any other platform like AIX or sun solaris and if i want to check about the details of the binary as to in which platform it was developed,how could i do it on any platform ?or is there a generic way doit it on all the flavour's of unix?

+6  A: 

The file command gives you some information about any file, not only executables.

On executables, it gives results such as:

MS Windows PE 32-bit Intel 80386 console executable not relocatable

or

ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, not stripped

mouviciel
A: 

Depending on how it was configured, binutils objdump can be used on a wide variety of binary formats.

$ 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

That's a Linux x86 ELF binary, a fat PPC and x86 Mach-O binary, and a Windows executable, just to give some examples.

ephemient
But is this `objdump` is present on all the unix flavours?as far as i am concerned i cannot find it in AIX.
Vijay Sarathi
I did say "binutils objdump", i.e. the one from the GNU binutils project; it's available for nearly all platforms, although not commonly part of the default install on non-free systems.
ephemient