2010-04-17 62 views

Respuesta

22

No se puede obtener la fuente C++ de un exe, y solo se puede obtener alguna versión de la fuente C# mediante reflexión. Ninguno te será de mucha utilidad, a juzgar por la forma en que hiciste la pregunta.

+0

Probé Reflector para un sencillo exe del proyecto Express de C# VS 2012 Perdí los archivos fuente, y el Reflector exportado tenía más de 100 errores cuando abrí el proyecto que creó para el código. Probé con otros pero solo tuve suerte con http://ilspy.net/. No solo no hubo errores que dejaron de crearse, sino que también pareció conservar los nombres de variables y pude hacer mis cambios lo suficiente para hacer una versión final y obtener un nuevo .exe. No pude conseguir que el formulario se muestre correctamente en VS 2012 Express, así que los cambios que hice fueron todos en código. Mi recomendación es solo hacer ajustes menores. – scottcarmich

+0

Eso es muy grosero – Seraf

17

Si el programa fue escrito en C# puede obtener el código fuente en casi su forma original usando .NET Reflector. No podrá ver comentarios ni nombres de variables locales, pero es muy legible.

Si fue escrito en C++ no es tan fácil ... incluso si pudieras descompilar el código en C++ válido, es poco probable que se parezca a la fuente original debido a las funciones inline y las optimizaciones que son difíciles de revertir.

Tenga en cuenta que mediante la ingeniería inversa y la modificación del código fuente puede romper los términos de uso de los programas a menos que los haya escrito usted mismo o tenga permiso del autor.

+0

gracias por su respuesta. es realmente útil. Intenté .Net reflector pero no está funcionando para mi exe. peid dice que es microsoft visual C++ 6.0.creo que no hay forma de obtener la fuente. gracias de todos modos –

+0

Como dije, no importa. –

6

Si es un código nativo, puede desmontarlo. Pero no verá el código original escrito por el programador. Verá el código producido por el compilador (ensamblador). Este código posiblemente esté optimizado y, aunque es semánticamente equivalente, puede ser mucho más difícil de leer que el ASM normal.

Si es bytecode (MSIL o javabytecode), hay descompilador que puede producir un código fuente bastante bueno. Para .net, esto sería reflector.

0

No hay nada que puedas hacer al respecto, me temo que no podrás verlo en un formato legible, es más o menos intencional y mostrará el código máquina interpretado, no habría formato o comentarios como normalmente se obtienen en archivos .cs/.c.

Es casi un escenario de al azar.

Alguien ya ha preguntado por él en otro website

+0

Típico, abajo vote sin explicación. Además, esta respuesta no está muy lejos de la respuesta aceptada. Al menos mencione cómo mi respuesta puede mejorarse por mi propio bien así como por el autor de la pregunta. –

+0

Si no hubiera eliminado su respuesta, podríamos haberlo hecho. De todos modos, tu respuesta es incorrecta; mira las otras respuestas a la pregunta. La ingeniería inversa de una imagen ejecutable es posible en muchas circunstancias y con las herramientas adecuadas. –

+0

No es completamente incorrecto, mi respuesta tiene un punto o dos en relación con la respuesta aceptada. La razón por la que eliminé mi respuesta es que se redujo en 3 en segundos y nadie tuvo la decencia de poner un comentario. Gracias por la respuesta, aprecio el esfuerzo. Quiere que no me moleste en contribuir por el miedo a que la gente vote sin piedad una respuesta sin explicación, con la certeza de que no sé todo, pero es un golpe para la confianza, independientemente de quién sea que haya dado una respuesta. –

3

lo haría (y tienen) utilizado IDA Pro descompilar archivos ejecutables. Crea código semicompleto, puede descompilar en ensamblador o C.

Si tiene una copia de los símbolos de depuración, cargue ésos en IDA antes de descompilar y podrá nombrar muchas de las funciones, parámetros, etc.

0

para cualquier archivo * .exe escrito en cualquier lenguaje Usted puede ver el código fuente con Hiew (de lo contrario vista hackers). Puede descargarlo al www.hiew.ru. Será la versión de demostración, pero aún se puede ver el código.

Después de esto siga estos pasos:

  1. pulse Alt + F2 para navegar hasta el archivo.

  2. Presione enter para ver su código de ensamblaje/C++.

Cuestiones relacionadas