Я думаю, что Вам нужен инструмент, который проверяет каждую инструкцию, для определения точно, которые устанавливают ее, принадлежит. Существует ли даже официальное название определенного набора инструкций, реализованных процессором C3? В противном случае это является еще более волосатым.
А quick'n'dirty вариант мог бы быть должен сделать необработанный поиск в файле, если можно определить комбинацию двоичных разрядов запрещенных инструкций. Просто тест для них непосредственно, мог быть сделан простым objdump | grep
цепочка, например.
Для этого отлично подходит команда 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 в качестве цели)