Desensamblador

Desensamblador

Desensamblador

Un desensamblador es un programa de ordenador que traduce lenguaje máquina (código binario) a lenguaje ensamblador, es la operación inversa a la que realiza un ensamblador.

El programa desensamblador a utilizar, por trabajar con lenguaje máquina y ensamblador, depende exclusivamente del microprocesador que estamos usando (para que pueda reconocer las instrucciones del código binario), de la arquitectura de la máquina y del sistema operativo en uso (no es lo mismo Windows que Linux).

Contenido

¿Qué no hace un desensamblador?

Un desensamblador no puede:

  • Rescatar los nombres de las variables o las funciones nombradas por el programador
  • Recuperar los comentarios
  • Rescatar código fuente perdido

Existe una salvedad a todo esto y es cuando el que compiló el programa ha habilitado una opción, que es incluir la información de debug en el programa (usualmente se trata de programas en fase de desarrollo y no de programas finales).

¿Qué hace un desensamblador?

El desensamblador transforma el código binario en instrucciones básicas de la PC en la que se ejecuta, el programa no es capaz de distinguir si dichas instrucciones provienen de un if, de un for o de un while. Tampoco conoce los nombres de las variables (no se incluyen en el código binario ya que la máquina no usa nombres), así que suele inventar nombres como VAR_0001, VAR_0002, etc.

En cuanto a las funciones, algo parecido pasa con las funciones internas del programa, se suelen llamar CALL_0001 o JMP_0001, o algo por el estilo, dependiendo de si son direcciones de llamadas con o sin retorno, respectivamente.

Las funciones externas son dependientes según el sistema en el que se corra el programa a desensamblar:

Bajo sistemas como DOS, la mayoría de las veces puede indicar las funciones que se llaman (llamar a una función requiere típicamente un llamado a interrupción con valores específicos en los registros, que deben ser consultados si no son provistos por el programa desensamblador). Por ejemplo, para imprimir un texto en pantalla:

 mov ax, 0009
 mov dx, offset TEXTO
 int 21h

En cambio bajo sistemas operativos modernos como Windows, las funciones se llaman por nombres, y esto suele ser bastante autoexplicativo. Esto resulta cierto para la mayoría de las funciones provistas por el sistema operativo y llamados externos en las DLLs. Por ejemplo, las funciones CreateFile o ReadFile.

Uso de los desensambladores

Los desensambladores son ampliamente utilizados para crackear programas y para realizar ingeniería inversa. También son utilizados por desarrolladores de software, investigadores o estudiantes.

Programas desensambladores

La mayoría de los desensambladores decentes se encuentran en inglés, para una lista consultar este artículo en inglés.

Véase también

Enlaces externos

Obtenido de "Desensamblador"

Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Desensamblador — ► sustantivo masculino INFORMÁTICA Programa capaz de traducir un programa escrito en lenguaje máquina, en un lenguaje de más alto nivel, o lenguaje objeto. * * * Un desensamblador es un programa de computación que traduce desde lenguaje máquina… …   Enciclopedia Universal

  • Interactive Disassembler — En informática, Interactive Disassembler (Desensamblador Interactivo), más conocido por su acrónimo IDA, es un desensamblador empleado para ingeniería inversa. Soporta una variedad de formatos ejecutables para diferentes procesadores y sistemas… …   Wikipedia Español

  • Lenguaje ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se resalta en rojo, el equivalente en lenguaje assembler en magenta, y las direcciones de memoria donde… …   Wikipedia Español

  • Hiew — Hacker s viewer Hiew en modo hexadecimal Desarrollador Eugene Suslikov www.hiew …   Wikipedia Español

  • Rockwell AIM-65 — AIM 65. Comelta Drac 1 …   Wikipedia Español

  • BIEW — Saltar a navegación, búsqueda BIEW Desarrollador Nickols K biew.sourceforge.net Información general …   Wikipedia Español

  • ScummVM — Interfaz de ScummVM 1.0.0 con el skin Modern Style …   Wikipedia Español

  • Ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). También ver: lenguaje ensamblador El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito …   Wikipedia Español

  • Norton Commander — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Compilador — «Compilación» redirige aquí. Para otras acepciones, véase recopilación. Diagrama a bloques de la operación de un buen compilador. Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”