Un desensamblador / decomstackdor .net

Estoy buscando un desensamblador o mejor, un descomstackdor 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.

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

¿Hay alguna herramienta para esto por ahí?

(Si no, supongo que será una buena excusa para sentarme y comenzar a aprender MSIL)

Ahora que Red Gate comenzó a cobrar por la herramienta Reflector de .NET, es posible que desee verificar estas alternativas gratuitas en su lugar …

Telerik JustDecompile

JetBrains dotPeek

(Código abierto) ILSpy

Reflector es el camino a seguir, pero si no puede usar eso por alguna razón, Microsoft envía un desensamblador llamado ILDasm con el marco.

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

.NET Reflector es la herramienta habitual para esto.

Reflector.

De acuerdo,

Probé en un proyecto. ILSpy

Telerik JustDecompile

Demostración Reflector .NET

Todos pueden crear el proyecto de Visual C #. El código generado no se compiló para JustDecompile y Reflector. En un caso, ILSpy hizo un código que se compiló (solo se tuvieron que establecer referencias). Los errores IlSpy no parecían tan comstackdos como los encontrados en otros. Todo el código generado puede ser reparado si uno conoce C # lo suficientemente bien.

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