¿Hay algún programa de Linux que pueda desensamblar un OSX universal x86/x86_64 gordo Mach-O binario como objdump? Objdump de GNU binutils admite archivos ELF y Windows PE, pero no Mach-O.Linux Mach-O Desensamblador
Respuesta
AFAIK, las herramientas binarias Darwin nativas son parte del paquete cctools. No tienen la misma sintaxis o salida de la línea de comando que el GNU binutils. Sin embargo, los binutils posteriores (es decir, 2.22) admiten el formato Mach-O. Puede obtener estos precompilados, con el prefijo 'g
' a los nombres de las herramientas, como se menciona here. Alternativamente, puede compilar binutils, con algo como:
> ./configure --prefix=$CROSSTOOLDIR --target=x86_64-apple-darwin \
--enable-64-bit-bfd --disable-nls --disable-werror
instalación producirá un directorio bin/
, donde las empresas de servicios públicos tienen el prefijo x86_64-apple-darwin
. Debe manejar el formato i386 Mach-O (y los binarios FAT) bien.
Eso funcionó. Muchas gracias. – Jeff
¡Gracias a un millón! Funcionó excelentemente!^_^ – TrinitronX
Para que quede claro, esto es para construir binutils específicamente para Mac osx? ¿No es para Linux como la pregunta original? –
Pocas herramientas famosas para la ingeniería inversa Los binarios de Mach-O son otool, strings, nm, otx etc. Esto definitivamente funciona en el MAC OSX, creo que también funciona en la plataforma Linux.
No, otool no funciona en Linux. Si tiene alguna evidencia en contrario, por favor indíquelo. Si tiene una versión de las otras herramientas que funcionan en Linux para archivos Mac OS X, indique de dónde las obtuvo. – pts
sí ... otool es una herramienta de línea de cmd OSX ... Existe una herramienta alternativa para la plataforma Linux ... ¡Google y encuéntrela! – Anil
Intenté buscar en Google y obtuve ... esta respuesta. – Buge
Con respecto a la respuesta de Jeff:
bintuils no incluye vincular el apoyo (LD/gld) para mach o ni siquiera en el actual 2,23 liberación que es realmente decepcionante, pero no sorprendente. Desafortunadamente, eso es lo que sucede cuando haces un sistema operativo y reinventa cosas que "realmente no necesitan ser reinventadas". Todos tienen diferentes prioridades. Todavía no he escuchado el final de a.out vs elf de algunas personas.
¿desea intentar ejecutar los binarios ELF en OSX? https://stackoverflow.com/a/2613170/1867574
Puede desmontar los binarios de Mach-O en Linux con Hopper. A diferencia de objdump, tiene una interfaz gráfica de usuario muy agradable.
Creo que necesita otool
. Está incluido en mac osx command tools
. Por ejemplo, si desea desensamblar a.out
, todo lo que tiene que hacer es escribir otool -tv a.out
en su línea de comando.
- 1. herramientas en Linux para leer/volcar archivos MachO?
- 2. ¿Cómo escribir un desensamblador?
- 3. ¿Hay alguna buena biblioteca de desensamblador VB/C# x86?
- 4. Obfuscator Opción "Prevenir que Microsoft Desensamblador IL abra mi ensamblaje"
- 5. ¿Cuál es su herramienta de desensamblador favorita en Mac OS X?
- 6. Cualquier biblioteca de ensamblador de desensamblador Java x86 flexible orientada a objetos?
- 7. ¿Hay alguna descripción de los íconos de desensamblador IL disponibles en algún lugar?
- 8. ¿Hay un desensamblador + depurador para java (ala OllyDbg/SoftICE para ensamblador)?
- 9. Linux Crypto API y linux/crypto.h - Documentación
- 10. linux pthread_suspend
- 11. Linux daemonize
- 12. Linux TortoiseSVN
- 13. comando de Linux "archivo" muestra "para GNU/Linux 2.6.24"
- 14. HeapCreate, HeapAlloc en Linux, asignador privado para Linux
- 15. Java classpath - Linux
- 16. Linux PID reciclaje
- 17. Multitouch en Linux
- 18. Linux kernel aio funcionalidad
- 19. Linux, precisión timerfd
- 20. Un instalador Linux personalizado
- 21. Linux find command gotcha?
- 22. Linux/perl mmap performance
- 23. memcpy asincrónico en Linux?
- 24. TextMate alternativa para Linux
- 25. Google protobuf en Linux
- 26. HDF5 visores/editores Linux
- 27. Linux buscar y reemplazar
- 28. Extended Ascii en Linux
- 29. especie estable en Linux
- 30. Equivalente entrelazado en Linux
¿Estás seguro de que los 'binutils' no son compatibles con Mach-O? Quizás necesite configurarlo para eso y volver a compilarlo (por supuesto, los 'binutils' de su distribución estándar no lo admiten, porque no lo necesita). –
Había leído en alguna parte que los binutils de GNU no lo habían soportado. Simplemente asumí que el puerto Mac se modificó para admitirlo. Este no es el caso como describe @Brett Hale. – Jeff