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.