Определите целевые расширения ISA двоичного файла в Linux (библиотека или исполняемый файл)

58
задан 6 revs, 4 users 74% 11 October 2018 в 01:53
поделиться

2 ответа

Я думаю, что Вам нужен инструмент, который проверяет каждую инструкцию, для определения точно, которые устанавливают ее, принадлежит. Существует ли даже официальное название определенного набора инструкций, реализованных процессором C3? В противном случае это является еще более волосатым.

А quick'n'dirty вариант мог бы быть должен сделать необработанный поиск в файле, если можно определить комбинацию двоичных разрядов запрещенных инструкций. Просто тест для них непосредственно, мог быть сделан простым objdump | grep цепочка, например.

17
ответ дан unwind 24 November 2019 в 18:41
поделиться

Для этого отлично подходит команда unix.linux file. Она обычно может определить целевую архитектуру и операционную систему для данного двоичного файла (и поддерживается с 1973 года. вот это да!)

Конечно, если вы не работаете под unix/linux - вы немного застряли. Я сейчас пытаюсь найти порт на основе java, который я мог бы вызывать во время выполнения... но не повезло.

Команда unix file дает такую информацию:

hex: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.4.17, not stripped

Более подробная информация о деталях архитектуры намекается командой (unix) objdump -f , которая возвращает:

architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000876c

Этот исполняемый файл был скомпилирован кросс-компилятором gcc (скомпилирован на машине i86 для процессора ARM в качестве цели)

106
ответ дан 24 November 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: