Pregunta

Escribí una aplicación de C # para un cliente hace un par de años, pero ya no tengo el código fuente. Todo lo que tengo es el EXE que implementé en la PC del cliente. ¿Hay alguna manera de generar código fuente en C # desde el EXE?

¿Fue útil?

Solución

Reflector y su complemento FileDisassembler .

Reflector permitirá ver el código fuente. FileDisassembler le permitirá convertirlo en una solución VS.

Otros consejos

Cuando Red Gate dijo que ya no habría una versión gratuita de .Net Reflector, comencé a usar ILSpy y Telerik's JustDecompile . He encontrado que ILSpy se descompila con más precisión que JustDecompile (que todavía está en Beta). Red Gate ha cambiado su decisión y aún tiene una versión gratuita de .Net Reflector, pero ahora me gusta ILSpy.

Desde el sitio web de ILSpy ( http://www.ilspy.net/ ):

ILSpy es el navegador y el descompilador de ensamblajes .NET de código abierto.

Funciones de ILSpy

  • Navegación de ensamblaje
  • Desmontaje de IL
  • Descompilación a C #
  • Soporta lambdas y 'rendimiento de rendimiento'
  • Muestra documentación XML
  • Ahorro de recursos
  • Buscar tipos / métodos / propiedades (subcadena)
  • Navegación de tipo / método / propiedad basada en hipervínculos
  • Navegación de tipos base / derivados
  • Historial de navegación
  • BAML a XAML descompilador
  • Guardar ensamblaje como proyecto C #
  • Buscar uso del campo / método
  • Extensible a través de complementos (MEF)

Actualización :

15 de abril de 2012, se lanzó ILSpy 2.0. Nuevas características en comparación con la versión 1.0:

  • Listas de ensamblaje
  • Soporte para descompilar árboles de expresiones
  • Soporte para operadores elevados en nullables
  • Descompilar a Visual Basic
  • Busque varias cadenas separadas por espacio (la búsqueda de " Administrador de ensamblaje " en ILSpy.exe encontraría el Administrador de listas de administradores)
  • Al hacer clic en una variable local, se resaltarán todas las demás ocurrencias de esa variable
  • Ctrl + F se puede usar para buscar dentro de la vista de código descompilado

Actualización :

  • ILSpy 2.1 admite la descompilación asíncrona / espera

Reflector ya no es gratis en general, pero lo ofrecen de forma gratuita a los desarrolladores de código abierto: http://reflectorblog.red-gate.com/2013/07/open-source/

Pero algunas compañías como DevExtras y JetBrains han creado alternativas gratuitas:

DevExtras CodeReflect

JetBrains DotPeek

Reflector y el Desensamblador de archivos de Denis Bauer. En realidad, produce proyectos de origen a partir de ensamblajes, donde Reflector solo muestra el origen desensamblado.

AGREGADO: Mi último favorito es dotPeek de JetBrains.

Telerik JustDecompile es gratis y tiene una función para crear proyectos desde ensamblados .NET.

Me sorprende que nadie haya mencionado ildasm de Microsoft . Puede que no sea tan bonito como ILSpy o Reflector, pero viene con Visual Studio, por lo que muchos desarrolladores ya lo tienen.

Para ejecutarlo (suponiendo que VS 2013, debería ser similar para otras versiones):

  1. Selecciona Inicio > Todos los programas > Visual Studio 2013 > Visual Studio Tools.
  2. Haga doble clic en el símbolo del sistema del desarrollador para VS2013.
  3. Ejecutar " ildasm " desde el símbolo del sistema resultante.
  4. En la herramienta, seleccione Archivo > Abra y abra su archivo ejecutable o DLL.

Ahora puedes navegar por la estructura DLL. Haga doble clic en los miembros de la clase para ver el IL. Utilizar archivo > Volcar para exportar IL a un archivo.

Desea reflector .

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