2009-02-23 10 views
26

Busco a un desensamblador o mejor, un descompilador para .NET. La situación es que el código fuente de un ensamblaje escrito por uno de mis predecesores se perdió y me gustaría echarle un vistazo para ver qué está haciendo..net/decompilador

Sé que ildasm viene con la instalación de Visual Studio para poder acceder al MSIL, pero esperaba que hubiera un programa lo suficientemente inteligente como para volver al código C# (o la mejor aproximación).

¿Hay herramientas para esta ahí fuera?

(Si no es así, supongo que va a ser una buena excusa para mí para sentarse y empezar a aprender MSIL)

Respuesta

40

¿Has mirado en el reflector?

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

+0

red gate = awesome – annakata

+0

Aunque me gustaría estar de acuerdo con annakata, claramente es incorrecto. Reflector = ¡doble increíble! :) – Russ

+6

La puerta roja originalmente no escribió Reflector. La única otra herramienta que he usado de ellos (SQL Intellisense para SQL Server 2005) fue lenta. :) – mmcdole

7

reflector es el camino a seguir, pero si no se puede utilizar que por alguna razón, Microsoft barcos un desensamblador llamada ILDASM con el marco.

Una buena fuente para el conocimiento de MSIL es el libro de Serge Expert .NET 2.0 IL Assembler Lidin.

55

Ahora que Puerta Roja han comenzado a cobrar por la herramienta .NET Reflector es posible que desee echa un vistazo a estas alternativas libres en vez ...

Telerik JustDecompile

JetBrains dotPeek

(Open Source) ILSpy

+1

Acabo de probar el ILSpy beta, y es tan bueno como Reflector para mí. Menos la molestia de licenciar. –

+0

dotPeek es una copia eval - parece casi tan buena como Reflector pero parece funcionar un poco más despacio.ILSpy hace el truco para mí, aunque su interfaz no es tan ingeniosa: la clasificación de los miembros y el tratamiento de los genéricos dejan un poco que desear, ¡pero lo suficientemente bueno, especialmente al precio! – yoyo

+2

A partir de 2012 dotPeek ahora es totalmente gratuito y ya no es una prueba de evaluación. –

1

Ok ,

he intentado en un proyecto. ILSpy

Telerik JustDecompile

.NET Reflector demostración

Todo puede crear proyecto de Visual C#. El código generado no se compiló para JustDecompile y Reflector. En un caso, ILSpy hizo un código compilado (que sólo referencias tuvieron que ser ajustado) Los errores IlSpy No parecía que compiicated como uno encontrado en otros. Todo el código generado puede ser reparado si uno conoce bien C#.

Se puede utilizar una dirección interesante para descompilar el código usando JustDecompile e Ilspy y fusionar los códigos que son correctos porque estos descompiladores (y tercero también) parecen cometer errores diferentes.