2009-12-18 6 views
2

이것은 기본적인 질문 일 수 있습니다. 그러나 나는 그것에 대해 알지 못해서 묻고 싶었습니다.유닉스 실행 파일에 대한 쿼리

HP-UX에서 만든 이진 파일을 가지고 갑자기 Linux에서이 이진 파일을 가져 오거나 AIX 또는 sun solaris와 같은 다른 플랫폼에서 갑자기 내가이 파일을 확인하고 싶다면 어떤 플랫폼에서 개발 되었는가에 대한 바이너리, 어떤 플랫폼에서 어떻게 할 수 있습니까? 아니면 유닉스의 모든 맛에 일반적인 방법이 있습니까?

답변

6

file 명령은 실행 파일뿐만 아니라 모든 파일에 대한 정보를 제공합니다. ,

MS 윈도우 PE 32 비트 인텔 80386 콘솔 실행 재배치하지

또는

ELF 32 비트 MSB 실행, SPARC : 실행에

, 그것은 다음과 같은 결과를 얻을 수 정적으로 연결되고 제거되지 않은 버전 1 (SYSV)

0

구성 방법에 따라 binutilsobjdump은 다양한 바이너리 형식에서 사용할 수 있습니다.

 
$ 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 바이너리, 팻 (fat) PPC 및 x86 Mach-O 바이너리 및 Windows 실행 파일입니다.

+0

하지만이 'objdump'가 모든 유닉스 풍미에 존재합니까? 까지 내가 AIX에서 찾을 수 없다고 우려하고있다. – Vijay

+0

"binutils objdump"라고했는데, 즉 GNU binutils 프로젝트의 것입니다. 일반적으로 비 자유 시스템의 기본 설치의 일부는 아니지만 거의 모든 플랫폼에서 사용할 수 있습니다. – ephemient