¿Existe un descompilador de C++? [closed]

4 minutos de lectura

¿Existe un descompilador de C closed
bryan denny

Tengo un programa en el que perdí el código fuente de C++. ¿Existen buenos descompiladores de C++?

ya me he cruzado Bumerang.

  • objdump para Linux

    – Stypox

    11 de marzo de 2020 a las 16:47

  • cortador.re para una gran interfaz gráfica de usuario y un gran descompilador incorporado

    – Misiur

    10 de abril de 2020 a las 1:01

Puedes usar AIF Pro por Rayos hexagonales. Por lo general, no obtendrá un buen C ++ de un binario a menos que compile información de depuración. Prepárate para pasar un lote del trabajo manual invirtiendo 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. Sin embargo, por lo general es muy tosco, al menos cuando lo usé hace un par de años.

  • Para aclarar, IDA solo dará el desmontaje. Hay un complemento llamado Hex-Rays que descompilará el resto del camino en fuente C/C++, en la medida de lo posible.

    – davenpcj

    5 mayo 2012 a las 12:55

  • Según mi lectura de los documentos, los rayos hexadecimales solo generan C como pseudocódigo. No es que eso lo haga inútil para descompilar C++, solo necesita saber un poco sobre cómo los compiladores convierten las estructuras de C++.

    –Michael Anderson

    11 de abril de 2013 a las 5:32


  • Para aclarar un poco más, Disassembly es lo máximo que puede descompilar con Hex-Rays traducirá ASM a C ++ ASM se puede traducir a cualquier lenguaje de programación con trabajo, ya que todos los programas pueden ejecutarse como ASM

    – Barkermn01

    12 de abril de 2014 a las 12:08

  • SNOWMAN es un buen descompilador gratuito de C++

    – Inga

    13 de abril de 2018 a las 1:05

  • +1 para Snowman, pero como otros han mencionado, incluso un simple Hola Mundo se vuelve prácticamente ilegible una vez descompilado.

    – bdetweiler

    2 de diciembre de 2018 a las 17:28

1646754069 61 ¿Existe un descompilador de C closed
Dustin Getz

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 versión optimizado. Sin nombres de variables, sin nombres de rutinas, sin nombres de clases, solo direcciones.

  • “el alma” del programa se ha ido, solo una cáscara vacía de lo que era antes…”

    – Darshan Chaudhary

    14 de agosto de 2017 a las 17:36

Sí, pero ninguno de ellos logrará producir un código lo suficientemente legible como para que valga la pena el esfuerzo. Pasará más tiempo tratando de leer el código fuente descompilado con bloques ensambladores en su interior, 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 investigué esto ). Por supuesto, cualquier información simbólica desaparecerá. Google para “descompilador”.

Según el tamaño y la calidad del código original, podría valer la pena comenzar de nuevo en su lenguaje 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 tirar?

nb Claramente, si este es un gran producto, entonces puede que no valga la pena.

  • joelonsoftware.com/articles/fog0000000069.html

    -Dustin Getz

    15 de octubre de 2008 a las 16:56

  • Joel es un gran columnista, pero a veces se equivoca. Y luego hay momentos en los que se cita mal. Como aquí, ya que la pregunta se centra en la pérdida del código fuente. El artículo de Joel explica por qué el código fuente es valioso.

    – MSalters

    16 de octubre de 2008 a las 10:47

  • ¿No dijo alguien una vez sobre escribir uno para tirar? Sí, y cambió de opinión. davewsmith.com/blog/2010/brook-revisits-plan-to-throw-one-away [I]n 1975, aconsejé a los programadores que “tiraran la primera versión” y luego construyeran una segunda. Para la edición del vigésimo aniversario, me di cuenta de que la iteración incremental constante es un enfoque mucho más sólido

    – ta.speot.es

    6 de abril de 2015 a las 3:13

  • joelonsoftware.com/articles/fog0000000069.html

    -Dustin Getz

    15 de octubre de 2008 a las 16:56

  • Joel es un gran columnista, pero a veces se equivoca. Y luego hay momentos en los que se cita mal. Como aquí, ya que la pregunta se centra en la pérdida del código fuente. El artículo de Joel explica por qué el código fuente es valioso.

    – MSalters

    16 de octubre de 2008 a las 10:47

  • ¿No dijo alguien una vez sobre escribir uno para tirar? Sí, y cambió de opinión. davewsmith.com/blog/2010/brook-revisits-plan-to-throw-one-away [I]n 1975, aconsejé a los programadores que “tiraran la primera versión” y luego construyeran una segunda. Para la edición del vigésimo aniversario, me di cuenta de que la iteración incremental constante es un enfoque mucho más sólido

    – ta.speot.es

    6 de abril de 2015 a las 3:13

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad