Respuestas:
Puede utilizar IDA Pro de 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 mucho trabajo manual revirtiendo el código.
Si no eliminó los binarios, hay alguna esperanza, ya que IDA Pro puede producir un código similar a C para que pueda trabajar con él. Sin embargo, por lo general es muy difícil, al menos cuando lo usé hace un par de años.
la información se descarta en el proceso de compilación. Incluso si un descompilador pudiera 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 clases, solo direcciones.
Sí, pero ninguno de ellos logrará producir código lo suficientemente legible para que valga la pena el esfuerzo. Pasará más tiempo tratando de leer la fuente descompilada con bloques ensambladores adentro, que reescribiendo su antigua aplicación desde cero.
No he visto ningún descompilador que genere código C ++. He visto algunos experimentales que hacen un intento razonable de generar código C, pero tienden a depender de hacer coincidir 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, toda información simbólica desaparecerá. Google para "descompilador".
Dependiendo de cuán 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 los errores cometidos en la última versión. ¿No dijo alguien una vez sobre escribir uno para tirarlo?
nb Claramente, si este es un producto enorme, entonces puede que no valga la pena.
objdump
para Linux