unix可执行文件查询
这可能是一个基本问题,但我想问,因为我没有意识到这一点unix可执行文件查询,unix,executable,binaryfiles,Unix,Executable,Binaryfiles,这可能是一个基本问题,但我想问,因为我没有意识到这一点 如果我有一个在HP-UX上创建的二进制文件,突然我在linux上或者在AIX或sun solaris等任何其他平台上使用这个二进制文件,如果我想查看二进制文件的详细信息,了解它是在哪个平台上开发的,我如何在任何平台上都能做到这一点?或者是否有一种通用的方法在所有unix平台上都能做到这一点?使用file命令可以提供有关任何文件的信息,而不仅仅是可执行文件的信息 在可执行文件上,它给出如下结果: MS Windows PE 32位Intel
如果我有一个在HP-UX上创建的二进制文件,突然我在linux上或者在AIX或sun solaris等任何其他平台上使用这个二进制文件,如果我想查看二进制文件的详细信息,了解它是在哪个平台上开发的,我如何在任何平台上都能做到这一点?或者是否有一种通用的方法在所有unix平台上都能做到这一点?使用
file
命令可以提供有关任何文件的信息,而不仅仅是可执行文件的信息
在可执行文件上,它给出如下结果:
MS Windows PE 32位Intel 80386控制台可执行文件不可重定位
或
ELF 32位MSB可执行文件,SPARC,版本1(SYSV),静态链接,不剥离根据其配置方式,
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
$objdump-f flex/bin/flashplayer
flex/bin/flashplayer:文件格式elf32-i386
架构:i386,标志0x00000112:
执行官,有符号,已分页
起始地址0x0804fb20
$objdump-f flex/bin/adl
在归档flex/bin/adl中:
flex/bin/adl:powerpc:common:file format mach-o-be
架构:powerpc:common,标志0x00000012:
执行官,有
起始地址0x00001c88
flex/bin/adl:i386:文件格式mach-o-i386
架构:i386,标志0x00000012:
执行官,有
起始地址0x00001e64
$objdump-f flex/bin/adl.exe
flex/bin/adl.exe:文件格式pei-i386
架构:i386,标志0x000001f:
具有RELOC、EXEC、LINENO、DEBUG、LOCAL、D页面
起始地址0x004014c0
这是一个Linux x86 ELF二进制文件,一个fat PPC和x86 Mach-O二进制文件,以及一个Windows可执行文件,仅举一些例子。但这是所有unix版本中都存在的
objdump
?就我而言,我在AIX中找不到它;它几乎适用于所有平台,但通常不是非免费系统默认安装的一部分。