Frage

Ich schrieb eine C # .NET-Anwendung für einen Kunden ein paar Jahre, aber ich habe nicht mehr den Quellcode. Ich habe nur die EXE, die ich auf der Client-PC zum Einsatz. Gibt es eine Möglichkeit, ich C # Quellcode aus dem EXE generieren kann?

War es hilfreich?

Lösung

Reflector und seine Add-In FileDisassembler

Reflektor ermöglicht es, den Quellcode zu sehen. FileDisassembler ermöglicht es Ihnen, in eine VS-Lösung zu konvertieren.

Andere Tipps

Wenn Red Gate sagte, dass es nicht mehr eine freie Version von .NET Reflector sein würde, begann ich mit ILSpy und Telerik JustDecompile . Ich habe ILSpy gefunden genauer als JustDecompile zu dekompilieren (was noch in der Beta ist). Red Gate hat ihre Entscheidung geändert und noch eine kostenlose Version von .Net Reflector, aber jetzt Ich mag ILSpy.

Von der ILSpy Website ( http://www.ilspy.net/ ):

ILSpy ist die Open-Source-.NET-Assembly-Browser und Decompiler.

ILSpy Eigenschaften

  • Montage-Browsing
  • IL Zerlegung
  • Decompilation zu C #
  • Unterstützt lambdas und 'yield return'
  • Zeigt XML-Dokumentation
  • Speichern von Ressourcen
  • Suchen Sie nach Arten / Methoden / Eigenschaften (substring)
  • Hyperlink-basierte Art / Methode / Eigenschaft Navigation
  • Basis / Abgeleitete Typen Navigation
  • Navigation Geschichte
  • BAML zu XAML Decompiler
  • Speichern Assembly als C # Projekt
  • Suchen Nutzung von Feld / Methode
  • Extensible über Plugins (MEF)

Update:

15. April 2012, wurde ILSpy 2.0 veröffentlicht. Neue Funktionen im Vergleich zu Version 1.0:

  • Montagelisten
  • Unterstützung für decompiling Expression Bäume
  • Unterstützung angehoben operatores auf nullables
  • Decompile zu Visual Basic
  • Suchen Sie nach mehreren Strings durch Leerzeichen getrennt (Suche nach "Assembly-Manager" in ILSpy.exe finden würde AssemblyListManager)
  • auf einer lokalen Variablen klicken, werden alle anderen Vorkommen dieser Variablen markieren
  • Strg + F verwendet werden kann, in der dekompilierten Codeansicht suchen

Update:

  • ILSpy 2.1 unterstützt async / await Dekompilierungsprozeß

Reflektor ist nicht mehr frei im Allgemeinen, aber sie bieten es kostenlos Source-Entwickler zu öffnen: http://reflectorblog.red-gate.com/2013/07/open-source/

Aber einige Unternehmen wie DevExtras und JetBrains haben freie Alternativen erstellt:

DevExtras CodeReflect

JetBrains DotPeek

Reflektor und die Disassembler Datei Add-in von Denis Bauer. Es produziert tatsächlich Source-Projekte von Baugruppen, in denen Reflektor auf seiner eigenen nur die zerlegten Quelle anzeigt.

angefügt:. Mein neuestes Lieblings ist JetBrains' dotPeek

Telerik JustDecompile ist kostenlos und verfügt über eine Funktion zum Anlegen von Projekten von .NET-Assemblies.

Ich bin überrascht, niemand Microsofts ildasm erwähnt . Es ist vielleicht nicht so hübsch wie ILSpy oder Reflektor sein, aber es kommt mit Visual Studio so viele Entwickler bereits haben.

Um es zu laufen (vorausgesetzt, VS 2013 sollte für andere Versionen ähnlich sein):

  1. Wählen Sie Start> Alle Programme> Visual Studio 2013> Visual Studio Tools.
  2. Doppelklicken Sie auf Entwickler-Eingabeaufforderung für VS2013.
  3. Ausführen "ildasm" aus der resultierenden Eingabeaufforderung.
  4. Im Werkzeug, wählen Sie Datei> Öffnen und öffnen Sie die ausführbare Datei oder DLL.

Jetzt können Sie die DLL-Struktur navigieren. Doppelklicken Sie auf die Teilnehmer, die IL zu sehen. Verwenden Sie Datei> Dump exportieren IL in einer Datei.

Sie wollen Reflektor .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top