这可能是一个基本问题,但我想问,因为我不知道它。
如果我有一个在HP-UX上创建的二进制文件,我突然在Linux上使用这个二进制文件,或者让我们说在AIX或sun solaris这样的任何其他平台上,如果我想查看二进制文件的详细信息至于它在哪个平台上的开发,我怎么能在任何平台上做到?或者是否有一种通用的方式在unix的所有风格上做它?
答案 0 :(得分:6)
file
命令为您提供有关任何文件的信息,而不仅仅是可执行文件。
在可执行文件中,它提供如下结果:
MS Windows PE 32位Intel 80386控制台可执行文件无法重定位
或
ELF 32位MSB可执行文件,SPARC,版本1(SYSV),静态链接,未剥离
答案 1 :(得分:0)
根据配置方式,binutils objdump
可用于各种二进制格式。
$ 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
这是一个Linux x86 ELF二进制文件,一个胖PPC和x86 Mach-O二进制文件,以及一个Windows可执行文件,只是举一些例子。