2009-02-23 10 views
26

Ich bin auf der Suche nach einem Disassembler oder besser, einem Decompiler für .net. Die Situation ist, dass der Quellcode für eine Assembly, die von einem meiner Vorgänger geschrieben wurde, verloren gegangen ist und ich möchte einen Blick darauf werfen, was es macht.Ein .net Disassembler/Decompiler

Ich weiß, dass Ildasm kommt mit der Visual Studio-Installation, so dass ich an der MSIL bekommen kann, aber ich hatte gehofft, es gab ein Programm, clever genug, um wieder auf den C# -Code (oder beste Näherung).

Gibt es irgendwelche Werkzeuge dafür?

(Wenn nicht, nehme ich an, es wird eine gute Entschuldigung für mich, sich zu hinsetzen und anfangen MSIL zu lernen)

Antwort

40

Haben Sie sich Reflektor angesehen?

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

+0

rotes tor = genial – annakata

+0

Obwohl ich mit annakata einverstanden sein möchte, klar, er/sie, ist falsch. Reflektor = doppelt genial! :) – Russ

+6

Red Gate hat ursprünglich nicht Reflektor geschrieben. Das einzige andere Tool, das ich von ihnen verwendet habe (SQL Intellisense für SQL Server 2005), war langsam. :) – mmcdole

7

Reflektor ist der Weg zu gehen, aber wenn Sie nicht aus irgendeinem Grund verwenden können, Microsoft liefert ein Disassembler ILDasm mit Rahmen genannt.

Eine gute Quelle für MSIL Wissen ist das Buch Expert .NET 2.0 IL Assembler von Serge Lidin.

55

Nun, da Red Gate für das .NET Reflector-Tool Laden begonnen haben Sie stattdessen diese freien Alternativen wollen vielleicht prüfen, ...

Telerik JustDecompile

JetBrains dotPeek

(Open Source) ILSpy

+1

Ich habe gerade die ILSpy Beta ausprobiert, und sie ist so gut wie Reflector für mich. Minus der Lizenzaufwand. –

+0

dotPeek ist eine Testversion - sieht fast so gut aus wie Reflektor, scheint aber etwas langsamer zu laufen.ILSpy macht den Trick für mich, obwohl seine Schnittstelle nicht ganz so glatt ist - Mitgliedersortierung und Behandlung von Generika lassen beide ein wenig zu wünschen übrig, aber gut genug, besonders um den Preis! – yoyo

+2

Ab 2012 ist dotPeek jetzt völlig kostenlos und nicht mehr eine Testversion. –

1

Ok ,

Ich probierte ein Projekt aus. ILSpy

Telerik JustDecompile

.NET Reflector Demo

Alle Visual C# -Projekt erstellen können. Der generierte Code wurde nicht für JustDecompile und Reflector kompiliert. In einem Fall erstellte ILSpy einen kompilierten Code (nur Referenzen mussten gesetzt werden) Die Fehler IlSpy sah nicht so aus wie in anderen gefunden. Der generierte Code kann behoben werden, wenn man C# gut genug kennt.

Eine interessante Richtung kann dazu verwendet werden, um Code zu dekompilieren sowohl JustDecompile und Ilspy verwenden und die Codes zusammenführen, die richtig sind, da diese decompilers (und dritte als auch) andere Fehler zu machen scheinen.

Verwandte Themen