查询unix可执行文件

时间:2009-12-18 16:10:36

标签: unix executable binaryfiles

这可能是一个基本问题,但我想问,因为我不知道它。

如果我有一个在HP-UX上创建的二进制文件,我突然在Linux上使用这个二进制文件,或者让我们说在AIX或sun solaris这样的任何其他平台上,如果我想查看二进制文件的详细信息至于它在哪个平台上的开发,我怎么能在任何平台上做到?或者是否有一种通用的方式在unix的所有风格上做它?

2 个答案:

答案 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可执行文件,只是举一些例子。