•
Ver la salida de objdump con la sintaxis de Intel
Mediante objdump podemos obtener el desensamblado de ejectables, pero por defecto lo obtendremos con la sintaxis de AT&T. Esta sintaxis es la que usa el GAS (GNU Assembler) por defecto. Vamos a ver como obtener el desensamblado con la sintaxis de Intel, por defecto es la que usa el NASM.
La sintaxis de AT&T tiene el siguiente aspecto:
$ objdump -d a.out (...) 080483c4 <main>: 80483c4: 55 push %ebp 80483c5: 89 e5 mov %esp,%ebp 80483c7: 83 e4 f0 and $0xfffffff0,%esp 80483ca: 83 ec 10 sub $0x10,%esp 80483cd: b8 d0 84 04 08 mov $0x80484d0,%eax 80483d2: c7 44 24 04 02 00 00 movl $0x2,0x4(%esp) 80483d9: 00 80483da: 89 04 24 mov %eax,(%esp) 80483dd: e8 12 ff ff ff call 80482f4 <printf@plt> 80483e2: b8 00 00 00 00 mov $0x0,%eax 80483e7: c9 leave 80483e8: c3 ret 80483e9: 90 nop 80483ea: 90 nop 80483eb: 90 nop 80483ec: 90 nop 80483ed: 90 nop 80483ee: 90 nop 80483ef: 90 nop (...)
Independientemente de los simbolos en los inmediatos y los registros, la característica más molesta es que el orden esta al revés que la sintaxis de Intel. Mediante –disassembler-options intel podemos obtener la misma salida pero con esta sintaxis:
$ objdump --disassembler-options intel -d a.out (...) 080483c4 <main>: 80483c4: 55 push ebp 80483c5: 89 e5 mov ebp,esp 80483c7: 83 e4 f0 and esp,0xfffffff0 80483ca: 83 ec 10 sub esp,0x10 80483cd: b8 d0 84 04 08 mov eax,0x80484d0 80483d2: c7 44 24 04 02 00 00 mov DWORD PTR [esp+0x4],0x2 80483d9: 00 80483da: 89 04 24 mov DWORD PTR [esp],eax 80483dd: e8 12 ff ff ff call 80482f4 <printf@plt> 80483e2: b8 00 00 00 00 mov eax,0x0 80483e7: c9 leave 80483e8: c3 ret 80483e9: 90 nop 80483ea: 90 nop 80483eb: 90 nop 80483ec: 90 nop 80483ed: 90 nop 80483ee: 90 nop 80483ef: 90 nop (...)
Relacionados
Imprimir
Deja un comentario: