Подтвердить что ты не робот

Linux Mach-O Disassembler

Существуют ли какие-либо Linux-программы, которые могут дизассемблировать универсальный x86/x86_64 OSX универсальный массив Mach-O, например objdump? GNU binutils objdump поддерживает файлы ELF и Windows PE, но не Mach-O.

4b9b3361

Ответ 1

AFAIK, собственные бинарные инструменты Darwin являются частью пакета cctools. Они не имеют того же синтаксиса или вывода командной строки, что и GNU binutils. Позже binutils (т.е. 2.22) поддерживает формат Mach-O. Вы можете получить эти предварительные настройки с префиксом 'g' к именам инструментов, как упомянуто здесь. Кроме того, вы можете скомпилировать binutils с чем-то вроде:

> ./configure --prefix=$CROSSTOOLDIR --target=x86_64-apple-darwin \
--enable-64-bit-bfd --disable-nls --disable-werror

Установка приведет к каталогу bin/, где утилит имеет префикс x86_64-apple-darwin. Он должен обрабатывать формат i386 Mach-O (и двоичные файлы FAT).

Ответ 2

Что касается ответа Джеффа:

bintuils не включает поддержку привязки (ld/gld) для mach даже не в текущем выпуске 2.23, что действительно неутешительно, но не удивительно. К сожалению, это то, что происходит, когда вы создаете ОС и изобретаете вещи, "которые действительно не нужно заново изобретать". У всех разные приоритеты. Я до сих пор не слышал о конце a.out против эльфа от некоторых людей.

Учтите, чтобы попытаться запустить двоичные файлы ELF на OSX? fooobar.com/questions/259198/...

Ответ 3

Вы можете дизассемблировать файлы Mach-O в Linux с помощью Hopper. В отличие от objdump, он имеет очень приятный графический интерфейс пользователя.

Ответ 4

Думаю, вам нужно otool. Он включен в mac osx command tools. Например, если вы хотите разобрать a.out, все, что вам нужно сделать, это набрать otool -tv a.out в командной строке.

Ответ 5

Немногие известные инструменты для обратного проектирования бинарные файлы Mach-O otool, строки, nm, otx и т.д. Это определенно работает на MAC OSX, я думаю, что он работает и с платформой Linux.