Desensamblador online

oda_screen.png

Alguna vez podríamos vernos en la situación de tener que analizar y/o desensamblar un fichero binario. Idealmente tendríamos nuestro equipo con nosotros y todas las herramientas que necesitamos para analizar dicho fichero, pero como la mayoría de nosotros creemos en Murphy, siempre es bueno el tener un plan B.

Incluso teniendo nuestro equipo, puede ser que el binario con el nos tenemos que enfrentar sea de una arquitectura distinta a las que reconoce nuestro desensamblador. Así tener acceso a un desensamblador online no sería ninguna mala idea.

Online Disassembler u ODA es precisamente eso, un desensamblador online listo para subir nuestro fichero binario y mostrarnos el desensamblado del mismo. Es capaz de reconocer arquitecturas:

  • x86
  • ARM
  • MIPS
  • PowerPC
  • PDP11
Para desensamblar un fichero es tan fácil como seleccionar File Upload y arrastrar nuestro fichero dentro del navegador. ODA intentará averiguar la arquitectura del fichero, pero nos da la opción a seleccionar una diferente de entre una larga lista de opciones.

Nos permite no sólo subir uno, sino varios ficheros, de entre los cuales podemos ir navegando y ver el código desensamblado. Una vez el fichero ha sido procesado, nos mostrará 4 apartados distintos:

  • Código ensamblador, donde podemos ver como ODA además es capaz de detectar y marcar (nombra) las distintas funciones dentro del código, referencias cruzadas (XREF), marca los bucles y llamadas con flechas de indicación, etc.
  • Secciones es el segundo apartado, donde podemos ver las distintas secciones del fichero (.reloc, .data, .text, etc)
  • Símbolos es el apartado siguiente, dónde nos muestra la lista (si existen) de los símbolos con su dirección, tipo y nombre.
  • Cadenas (Strings) es el último de los apartados donde podemos ver las cadenas de texto dentro del fichero y su desplazamiento.
Además de todo esto, tenemos varias opciones que podemos elegir a la hora de la presentación del código ensamblador, como son: formato de direcciones (big o little endian), sintaxis (Intel o ATT), modo (i8086, i386 o x86-64), tamaño de direcciones (16, 32 ó 64 bits) y tamaño de datos (16 ó 32 bits).

El proyecto está en constante desarrollo, por lo que irán apareciendo nuevas funcionalidades, modificaciones, correcciones, etc.