Vijay
Vijay

Reputation: 67301

query on unix executables

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?

Upvotes: 2

Views: 636

Answers (2)

ephemient
ephemient

Reputation: 204994

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.

Upvotes: 0

mouviciel
mouviciel

Reputation: 67879

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

Upvotes: 6

Related Questions