Pregunta:
¿Hay alguna forma de descompilar un ensamblado o programa .NET?
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

¿Hay alguna herramienta disponible para tomar un archivo .dll o .exe ya compilado que sepa que se compiló desde C # o Visual Basic y obtener el código fuente original de él?

ILSpy es probablemente la mejor opción (en mi humilde opinión)
Debido a que descompilar .net es muy fácil, la mayor parte del código .net está protegido u oculto. Por lo tanto, para utilizar cualquiera de las herramientas sugeridas en la respuesta, primero debe eliminar esta protección (si está presente).
Seven respuestas:
#1
+49
Mick
2013-03-20 21:24:06 UTC
view on stackexchange narkive permalink

ILSpy es un gran descompilador de código abierto.

Funciones de ILSpy

  • Navegación de ensamblajes
  • Desmontaje de IL
  • Admite C # 5.0 "async"
  • Descompilación a C #
  • Admite lambdas y 'rendimiento de retorno'
  • Muestra documentación XML
  • Descompilación en VB
  • Ahorro de recursos
  • Guarde el ensamblado descompilado como .csproj
  • Busque 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 descompilador XAML
  • Guardar ensamblado como proyecto C #
  • Encontrar el uso de campo / método
  • Extensible a través de complementos (MEF)
  • Listas de ensamblaje
Combínelo con este útil complemento para Visual Studio [SourceFly] (http://public.carr-designs.com/releases/SourceFlySetup.msi) para que pueda abrir ILSpy desde Visual Studio. Aunque no es compatible con Visual Studio 2012 en su última versión.
#2
+23
Glides
2013-03-21 03:38:55 UTC
view on stackexchange narkive permalink

He usado JetBrains dotPeek (gratis) antes con cierto éxito.

Cualquier software JetBrains que haya usado alguna vez ha sido muy sólido.

No es exactamente la 'fuente original' pero es muy legible en C #, lo más cercano que esperaría obtener. Cita de su sitio web:

¿Qué tiene de bueno dotPeek?

  1. Descompilación de ensamblajes .NET 1.0-4.5 en C #
  2. Soporte para. dll , .exe , .zip , .vsix , .nupkg y .winmd archivos
  3. Salto rápido a un tipo, ensamblado, símbolo o miembro de tipo
  4. Navegación sin esfuerzo a declaraciones de símbolos, implementaciones, símbolos derivados y base, y más
  5. Búsqueda precisa del uso de símbolos con presentación avanzada de resultados de búsqueda
  6. Descripción general de las cadenas de herencia
  7. Soporte para descargar código desde servidores fuente
  8. Resaltado de sintaxis
  9. Soporte de teclado completo
  10. ¡dotPeek es gratis!

El último punto es gratis como en cerveza gratis, no como en la libertad de expresión.

#3
+11
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

Hay una herramienta gratuita disponible llamada JustDecompile que hace eso.

Algunas características:

  • Creación de un proyecto de Visual Studio desde un ensamblado para exportar proyectos perdidos u obtener múltiples clases sin la necesidad de copiar y pegar código. En la actualidad, JustDecompile puede exportar código descompilado solo a C #.
  • Exportar código directamente desde el símbolo del sistema
  • Carga rápida de ensamblajes .NET centrales (.NET 2, .NET3.5 , .NET 4, .NET 4.5, Metadatos de WinRT y Silverlight)
  • Edición directa de ensamblajes cargados en el programa
JustDecompile tiene un complemento De4Dot Deobfuscator que ayudará con exe ofuscado
#4
+11
Kalibr
2015-12-04 05:36:35 UTC
view on stackexchange narkive permalink

Recientemente he estado usando dnSpy [bifurcado de ILSpy por los creadores de de4dot] como mi herramienta principal para la descompilación y depuración en vivo de código .NET

https://github.com/0xd4d/dnSpy


Principal diferencia con ILSpy:

  • Utiliza dnLib para leer ensamblados ( vs Mono.Cecil de ILSpy)

https://github.com/0xd4d/dnlib

dnlib se creó porque de4dot necesitaba una biblioteca de ensamblajes .NET robusta que pudiera manejar todo tipo de ensamblajes ofuscados. de4dot solía usar Mono.Cecil pero dado que Mono.Cecil no puede manejar ensamblajes ofuscados, no es totalmente compatible con ensamblajes de modo mixto, no lee ensamblados .NET de la misma manera que lo hace CLR y muchas otras características faltantes de4dot necesitaba, dnlib era una necesidad. La API es similar porque facilitó mucho la migración de de4dot a dnlib.

¿En qué se diferencia o es mejor que ILSpy?
Esta es mi primera respuesta, ¿es apropiado vincularlo a una discusión externa? : https://www.reddit.com/r/ReverseEngineering/comments/3jau4m/dnspy_a_net_assembly_editor_decompiler_and/ ... También resumiré arriba.
Puedo responder por dnSpy, creo que es mejor que cualquier otra herramienta .NET similar que existe. Incluso puede depurar el proceso.
Realmente puedo recomendar este. Es la única herramienta gratuita que encontré que admite la depuración del ensamblaje.
Úselo con [esta extensión de Visual Studio] (https://marketplace.visualstudio.com/search?term=dnspy&target=VS).
#5
+9
QAZ
2013-03-20 21:25:27 UTC
view on stackexchange narkive permalink

He usado .NET Reflector (Nota: Comercial, pero prueba disponible) varias veces y me gusta:

http://www.red-gate.com/products/dotnet -desarrollo / reflector /

Algunos ejemplos de casos de uso serían una buena adición a esta respuesta. Actualmente, es demasiado vago para ser de mucha utilidad además de ofrecer una herramienta y su sitio web. Dar algunos ejemplos de uso real ayuda a definir un poco mejor el producto.
#6
+3
TomSmartBishop
2015-12-03 14:11:38 UTC
view on stackexchange narkive permalink

Si está interesado en un descompilador a nivel de API: https://code.google.com/p/facile-api/ (aunque en Java)

¡Si! ¡Estaba buscando una biblioteca java! Gracias :)
Déjame saber lo que estás haciendo ;-) Saludos
Espero agregar la función de "compatibilidad con .NET" a esta aplicación Disassembler (https://github.com/KYHSGeekCode/Android-Disassembler). :)
Bien, déjame saber cómo funciona.
#7
+1
tyh
2015-03-23 03:27:01 UTC
view on stackexchange narkive permalink

Yo apoyaría la respuesta sobre ILSPY como un descompilador de.net realmente genial. Además, consulte de4dot para la desofuscación. Esta es una buena reseña de ello en acción. http://blogs.cisco.com/security/talos/reversing-multilayer-net-malware

El visual básico compilado puede ser un animal diferente y doloroso. http://vrt-blog.snort.org/2014/08/discovering-dynamically-loaded-api-in.html?m=1

¿Cómo se relaciona Visual Basic (6) compilado con .NET?
La pregunta original también se refería a Visual Basic.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...