Pregunta

Tengo un programa en el que he perdido el código fuente de C ++. ¿Hay algún buen descompilador de C ++?

Ya he encontrado Boomerang .

¿Fue útil?

Solución

Puede utilizar IDA Pro por Hex-Rays . Por lo general, no obtendrá un buen C ++ de un binario a menos que haya compilado información de depuración. Prepárese para gastar un lote de trabajo manual invirtiendo el código.

Si no eliminó los archivos binarios, hay alguna esperanza, ya que IDA Pro puede producir un código similar a C para que pueda trabajar. Sin embargo, generalmente es muy rudo, al menos cuando lo usé hace un par de años.

Otros consejos

la información se descarta en el proceso de compilación. Incluso si un descompilador podría producir el código lógico equivalente con clases y todo (probablemente no pueda), la parte de autodocumentación desaparece en el código de lanzamiento optimizado. Sin nombres de variables, sin nombres de rutina, sin nombres de clase, solo direcciones.

Sí, pero ninguno de ellos logrará producir un código lo suficientemente legible como para que valga la pena el esfuerzo. Pasarás más tiempo intentando leer la fuente descompilada con bloques de ensamblador dentro, que reescribir tu aplicación antigua desde cero.

No he visto ningún descompilador que genere código C ++. He visto algunos experimentos que hacen un intento razonable de generar código C, pero tienden a depender de los patrones de generación de código de un compilador en particular (eso puede haber cambiado, ha pasado un tiempo desde la última vez que miré esto). ). Por supuesto, cualquier información simbólica se habrá ido. Google para " decompiler " ;.

Dependiendo de qué tan grande y bien escrito esté el código original, podría valer la pena comenzar de nuevo en su idioma favorito (que aún podría ser C ++) y aprender de cualquier error cometido en la última versión. ¿No dijo alguien alguna vez sobre escribir uno para tirar?

n.b. Claramente, si este es un producto enorme, puede que no valga la pena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top