[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] ¿Descompilar?.



On Fri, May 05, 2006 at 10:50:50AM +0200, Pablo Braulio wrote:
> Para los expertos, ¿existen descompiladores?, ¿es posible
> descompilar?, 

Existen descompiladores. Y siempre es posible leer el código máquina
tal cual. Pero el código que te producen no se parece al código
original que escribió el programador por que:

- Se pierden los comentarios
- Muy frecuentemente se pierden los nombres de variables y funciones
- Todo compilador que sirva en la práctica es un compilador
optimizador. Es significa que va a alterar el algoritmo, sacar cosas
de los bucles, eliminar operaciones intermedias, integrar en linea
llamadas a funciones cortas, etc, etc.
- Al compilar estás pasando a un lenguaje de bajo nivel. Dicho
lenguaje tiene explícitos muchos detalles que el lenguaje de alto
nivel esconde (como el orden de los bytes de un entero, por poner un
ejemplo bobo). El decompilador no necesariamente va a saber cuales de
esos detalles los puso el progamador y cuales el compilador.

De todas formas, hay trabajo muy interesante y exitoso en lograr
decompilar código que viene de un lenguaje fuente conocido.

Pero eso nos lleva a una pregunta que no hiciste: ¿Sirve descompilar?
Y la respuesta es no. Por que, a fin de cuentas, en el SW libre
queremos el código no tanto para verlo, sino para modificarlo cuando
no nos sirve. Imagina que decompilas MSWord :-) y lo modificas para
que deje de sacar el mugroso clip ese. 3 meses después llega el parche
de seguridad que evita que borren tu disco duro enviandote una
cartita. Obviamente lo aplicas. Y quieres aplicar también tu parche
quita-clip. Vuelves a decompilar y resulta que, como la dirección de
unas funciones cambió, el código decompilado es completamente
diferente, así que tienes que volver a hacer todo el trabajo.

Eso sin mencionar que:
- La mayoría de las licencias propietarias prohiben explícitamente
decompilar.

- Aún sin esa restricción, el código que obtengas de decompilar no es
distribuible, así que no le sirve a nadie más que a tí.

- El conocimiento que obtuvieras de ver ese código no es
utilizable. Si alguin decompila MSWord, averigua como le hacen para
poner hormiguitas de colores alrededor de una palabra, y luego va e
implementa eso para OOo, MS podría demandar exitosamente a (ese
desarrollador de) OOo por violación de derecho de autor.

> ¿existen el ratoncito pérez?. XDD

Eso sí quien sabe :-)

-- 
Rodrigo Gallardo            PGP Key ID:  ADC9BC28 
Fingerprint: 7C81 E60C 442E 8FBC D975  2F49 0199 8318 ADC9 BC28
http://www.nul-unu.com      http://www.nul-unu.com/blogs/elucubrando

Attachment: signature.asc
Description: Digital signature


Reply to: