2011-01-13 10 views
2

Was ist das beste Disassembler-Tool für den .NET-Reflektor?Bestes Disassembler-Tool für den .NET-Reflektor?

Mit besten ich meine, speichern eine .NET-Assembly in einem disassemblierten Zustand in den meisten lesbar, am wahrscheinlichsten mit weniger Änderungen zu kompilieren.

Der Strom, den ich verwendet keine vereinfachte Aufzählung zeigen aber zeigt die vollständige IEnumerable Implementierungen mit Movenext, etc. mit den Mitgliedsnamen wie:

this.<>4__state 
CS$<>9__CachedAnonymousMethodDelegate3 

Btw ich versuche nicht Code zu stehlen, nur um sicher das Ausprobieren Dinge auf einer bereits vorhandenen Assembly statt eine ähnliche Sache von Grund auf neu zu schreiben. Am Ende werde ich daraus lernen, dass es bleibt, nicht die modifizierte Versammlung.

+0

Strg + C, Strg + V + Änderung funktionierte normalerweise für mich. –

+0

Danke, es zeigt auch Mitglieder auf diese Weise, wie in nicht zulässigen oder Verwendung von ungültigen Zeichen wie $, etc. –

+0

Nur Lutz Roeder ist schlau genug, den Code zu schreiben, um das zu dekompilieren. Er ist beschäftigt, Microsoft hat ihn eingestellt. Erwarte nicht, dass er für weitere 7 Jahre wieder auftaucht. –

Antwort

2

Red Gate hat einige Fehler beim Dekompilieren behoben und ist derzeit im Reflector 7 Beta-Download unter: http://reflector.red-gate.com/Download.aspx (es ist der große rote Knopf auf der rechten Seite) verfügbar.

Sie sollten auch sicherstellen, dass der Disassembler .Net 4-Optimierung verwendet - das ist am ehesten dem tatsächlichen Quellcode für Dinge wie automatische Eigenschaften und andere neue Syntax-Sachen. Sie können dies überprüfen, indem Sie auf Ansicht -> Optionen gehen und sicherstellen, dass das in der Optimierungsliste ausgewählte Element .NET 4.0 ist.

Viel Glück.

+1

Danke Mann, es funktioniert sicher, nicht 100% in allen Fällen aber sehr gut. –

1

AFAIK werden sie ungefähr den gleichen Code produzieren, da Reflector tatsächlich die IL nach C# übersetzt, nicht das Reflector-Plugin.

Ich würde einfach die Reflector.FileDisassembler verwenden und den Code reparieren. Wenn es sich um viel Code handelt, könnte dies eine erhebliche Anstrengung sein.

2

Check out Graywolf bei www.DigitalbodyGuard.com

Es hat die Fähigkeit, IL und C# zu sehen, und eine grundlegende Fähigkeit zu bearbeiten IL

Genießen