Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
unix可执行文件查询_Unix_Executable_Binaryfiles - Fatal编程技术网

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中找不到它;它几乎适用于所有平台,但通常不是非免费系统默认安装的一部分。