Desmonte em x86_64 em osx10.6 (mas com _intel_ sintaxe)
Pergunta
eu sei de otool -tv
, mas eu prefiro usar o Intel Sintaxe em vez de AT&TS, principalmente para seguir facilmente em um livro e não ter que olhar mais de milhares de %
'areia $
's.
Eu também apreciaria qualquer dica para onde eu poderia encontrar gdb
Arquivo de configuração.
EDIT: Esqueci: estou executando um processador de 64 bits, mas estava me perguntando se seria possível desmontar também em montagem de 32 bits? Não apenas isso, mas o OSX's gdb
's list
trabalho de comando de maneira diferente do padrão GNU
versão?
Muito obrigado!
(Além disso, se você tiver alguma idéia de onde eu possa encontrar um pouco de desmontagem de C -> MIPS, isso seria muito divertido de brincar. Mas não é necessário!)
Solução
Para responder à sua segunda pergunta, se o código foi compilado em um binário gordo com 64 bits e 32 bits, você pode usar otool -arch i386 -tv
Desmontar a fatia de 32 bits do binário; otool -arch x86_64 -tv
dará a você a parte de 64 bits (no Snowleopard, este também é o comportamento padrão se não -arch
bandeira é passada).
Observe também que, embora o Otool não suporta a sintaxe da Intel, GDB (set disassembly-flavor intel
) e Xcode (Preferências -> Depuração -> Estilo de Desmontagem) fazem.
Outras dicas
(Eu sei que essa é uma pergunta antiga, mas quero fornecer uma resposta atualizada para pessoas que vêm aqui através dos mecanismos de pesquisa).
Em versões recentes do macOS (estou executando 10.14.5), um objdump
O comando está disponível, que é baseado no LLVM e é não aquele do projeto GNU. Oferece uma opção (oculta) para desmontar usando a sintaxe Intel. Por exemplo, /bin/echo
pode ser desmontado da seguinte maneira:
objdump -disassemble -x86-asm-syntax=intel /bin/echo
Com Objdump Você pode desmontar com -d -M intel
, e aparentemente -m
pode ser usado para especificar a arquitetura.
Para o GDB, no seu arquivo .gdbinit, adicione:
Defina a Intel de saborear a desmontagem
Em seguida, será a sintaxe padrão para o GDB.
Você pode usar o A2I para traduzir da Sintaxe da AT&T para Intel: http://membres.lycos.fr/placr/a2i.html