query on unix executables
-
20-09-2019 - |
Question
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?
Solution
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
OTHER TIPS
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.