objdump es un programa de línea de comandos para mostrar diversa información sobre archivos objeto en sistemas operativos tipo Unix . Por ejemplo, puede usarse como desensamblador para ver un ejecutable en lenguaje ensamblador. Forma parte de GNU Binutils para un control preciso sobre ejecutables y otros datos binarios. objdump utiliza la biblioteca BFD para leer el contenido de los archivos objeto. Otras utilidades similares son Borland TDUMP , Microsoft DUMPBIN y readelf .
En ciertas plataformas (por ejemplo, macOS ), el binario objdump puede ser en realidad un enlace a objdump de LLVM , con diferentes opciones de línea de comandos y comportamiento. otool y nm realizan funciones análogas para archivos Mach-O . [ 1 ] [ 2 ]
Ejemplo
Por ejemplo,
$ objdump -D -M intel file.bin
Esto desensambla el archivo file.bin, mostrando su código ensamblador en sintaxis Intel .
Ejemplo de salida:
4004ed <main>: 4004ed: 55 push rbp 4004ee: 48 89 e5 mov rbp , rsp 4004f1: c7 45 ec 00 00 00 00 mov DWORD PTR [ rbp - 0x14 ], 0x0 4004f8: c7 45 f0 01 00 00 00 mov DWORD PTR [ rbp - 0x10 ], 0x1 4004ff: c7 45 f4 02 00 00 00 mov DWORD PTR [ rbp - 0xc ], 0x2 400506: c7 45 f8 03 00 00 00 mov DWORD PTR [ rbp - 0x8 ], 0x3 40050d: c7 45 fc 04 00 00 00 mov DWORD PTR [ rbp - 0x4 ], 0x4 400514: c7 45 ec 00 00 00 00 mov DWORD PTR [ rbp - 0x14 ], 0x0 40051b: eb 13 jmp 400530 < main + 0x43 > 40051d: 8b 05 15 0b 20 00 mov eax , DWORD PTR [ rip + 0x200b15 ] # 601038 <globalA> 400523: 83 e8 01 sub eax , 0x1 400526: 89 05 0c 0b 20 00 mov DWORD PTR [ rip + 0x200b0c ], eax # 601038 <globalA> 40052c: 83 45 ec 01 add DWORD PTR [ rbp - 0x14 ], 0x1 400530: 8b 05 02 0b 20 00 mov eax , DWORD PTR [ rip + 0x200b02 ] # 601038 <globalA> 400536: 39 45 ec cmp DWORD PTR [ rbp - 0x14 ], eax 400539: 7c e2 jl 40051 d < main + 0x30 > 40053b: 5d pop rbp 40053c: c3 retVéase también
Referencias
- ↑ "Introducción a la biblioteca de Apple" . Foros de desarrolladores de Apple .
- ↑ "llvm-otool - Herramienta de volcado Mach-O" . Referencia de LLVM .
Enlaces externos
- Herramientas de programación Unix
- Desmontadores
- Stubs de Unix
- Software libre y de código abierto (stubs)