← Glosario
Glosario · Dev

¿Qué es Decompiler?

Es una herramienta de traducción que convierte el código máquina de nuevo a un lenguaje de programación legible.

Definición

Cuando se compila un programa informático, el código comprensible para los humanos se transforma en lenguaje máquina, es decir, en números que solo el procesador entiende. El descompilador intenta revertir este proceso, devolviendo estos números, que parecen complejos y sin sentido, al formato de código fuente sobre el cual los desarrolladores pueden trabajar. Este proceso se utiliza generalmente en situaciones donde el código fuente original se ha perdido o para entender cómo funciona un programa.

Analogía: Es como una máquina de traducción que traduce un libro escrito en un idioma extranjero de vuelta a su lengua materna; sin embargo, la traducción a veces puede no corresponder exactamente a las palabras originales.

Cómo funciona

Toma el archivo ejecutable del programa y analiza las secuencias de comandos que contiene. Luego, empareja estos comandos con estructuras de lenguaje de programación que realizan funciones similares. El texto resultante, aunque no sea exactamente igual al código original, ofrece un borrador que permite comprender su lógica.

Dónde se usa

Se utiliza en investigaciones de seguridad de software, para entender cómo funciona una aplicación o para actualizar software antiguo cuyo código fuente se ha perdido.

Suele confundirse con

Se confunde con el compilador; el compilador traduce el código a lenguaje máquina, mientras que el descompilador traduce el código máquina a lenguaje humano.

Preguntas frecuentes

¿Puedo obtener el mismo código original con un descompilador?

Generalmente no; porque durante la compilación se eliminan algunos nombres de variables y líneas de comentarios, por lo que el resultado obtenido puede ser un poco más complejo y anónimo.

¿Se puede descompilar cualquier programa?

Técnicamente, la mayoría se puede, pero algunos programas están protegidos con métodos de 'ofuscación', es decir, técnicas de mezcla de código que dificultan este proceso.

Términos relacionados

Herramientas relacionadas

Esta explicación se redactó en lenguaje sencillo para TreScout y se tradujo automáticamente del original en turco · prevalece la versión turca. Si algo le parece erróneo o incompleto, escriba a hello@trescout.com. Leer en turco →