Вопрос

Это может быть простой вопрос, но я хотел спросить, поскольку я не знаю об этом.

если у меня есть двоичный файл, который был создан на HP-UX, и вдруг я беру этот двоичный файл в linux или, скажем, на любой другой платформе, такой как AIX или sun solaris, и если я хочу проверить детали двоичного файла относительно того, на какой платформе он был разработан, как я могу это сделать на любой платформе? или есть общий способ сделать это на всех версиях unix?

Это было полезно?

Решение

Тот самый file команда предоставляет вам некоторую информацию о любом файле, а не только об исполняемых файлах.

В исполняемых файлах это дает такие результаты, как:

32-разрядный консольный исполняемый файл MS Windows PE на 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

Это двоичный файл ELF для Linux x86, толстый двоичный файл PPC и x86 Mach-O, а также исполняемый файл для Windows, просто для примера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top