Ver Mensaje Individual
  #5  
Antiguo 20-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Reputación: 24
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por frankmch
toda funcion tiene su inversa, algunas veces en un rango de valores, pero esta existe.
En realidad no es así. Para que una función tenga inversa, debe cumplir que sea biyectiva (inyectiva y suprayectiva).

La traducción de código dista mucho de ser una función biyectiva.

Cita:
Posteado originalmente por frankmch
una razon que se me ocurre es de interes comercial, pero opino que es una tarea posible...
Existen argumentos de mucho más peso:

1. Dado un código binario (ejecutable directamente por una máquina determinada y del que desconoces como ha sido generado): ¿a qué lenguaje de alto nivel corresponde? ¿Tiene correspondencia con cualquier lenguaje de alto nivel?. Es decir, en primer lugar deberías conocer cual es el lenguaje original, y eso no siempre (casi nunca) es conocido.

2. Opciones diferentes de generación de código del mismo compilador (p. ej. optimizaciones) generan distintos binarios para el mismo código fuente, y sin conocer esas opciones (y no las conoces) no podrás regenerar el código fuente original. Eso suponiendo que hablemos de la misma versión del compilador, porque:

3. Diferentes versiones del mismo compilador generan códigos binarios diferentes para el mismo fuente. La misma situación que el caso anterior. Por no hablar de:

4. Utilizar diferentes compiladores para el mismo fuente. No existen dos compiladores diferentes del mismo lenguaje que generen el mismo binario para un código fuente dado.

5. Un compilador genera (normalmente) código binario a través de varias fases. Es decir, que incluso suponiendo que se pudieran solventar los problemas anteriores, habría que repetirlo a varios niveles, no en un único paso.

Desde luego pueden hacerse aproximaciones (inservibles, a no ser para casos triviales) al código original, pero una solución universal (que funcione y lo haga bien en todos los casos posibles) no existe.

Saludos.

Última edición por kinobi fecha: 20-10-2003 a las 05:08:59.
Responder Con Cita