Desensambladores

  • Posted on: 14 December 2018
  • By: ReYDeS

Mientras la descompilación de un código compilado es una tarea extremadamente retadora, desensamblar el mismo código fuente no lo es. Para cualquier programa compilado se ejecute, este debe comunicar alguna información hacia el sistema operativo anfitrión. El sistema operativo necesitará conocer un punto de entada del programa (la primera instrucción la cual debe ser ejecutada cuando el programa sea iniciado); la disposición de memoria deseada del programa, incluyendo la ubicación del código y datos; y cuales librerías el programa necesitará acceder mientras se ejecuta.

Toda esta información está contenida dentro de un archivo ejecutable, y es generada a través de las fases de compilación y enlazado durante el desarrollo del programa. Los cargadores interpretan estos archivos ejecutables para comunicar la información requerida hacia el sistema operativo, cuando el archivo es ejecutado.

Dos formatos comunes para archivos ejecutables son, el formato de archivo ejecutable portátil (PE), utilizado por los ejecutables de Microsoft Windows, y el formato ejecutable y enlazado (ELF), utilizado por Linux y otras variantes Unix. Los desensambladores funcionan mediante la interpretación de estos formatos de archivos ejecutables (de una manera similar al cargador del sistema operativo), y así conocer la disposición del ejecutable, para luego procesar el flujo de instrucciones empezando desde el punto de entrada para dividir el ejecutable en sus funciones componente.

Fuentes:

https://en.wikipedia.org/wiki/Disassembler
https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format
https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1