dnSpyEx
dnSpyEx ist eine inoffizielle Fortsetzung des dnSpy-Projekts, einem Debugger und .NET-Assembly-Editor. Sie können damit Assemblys bearbeiten und debuggen, selbst wenn kein Quellcode verfügbar ist. Hauptfunktionen:
- Debuggen von .NET- und Unity-Assemblys
- Bearbeiten von .NET- und Unity-Assemblys
- Helle und dunkle Designs
Weitere Funktionen finden Sie unten


Binärdateien
Neueste stabile Version: https://github.com/dnSpyEx/dnSpy/releases
Wenn Sie es lieber etwas experimenteller mögen, können Sie die neuesten „Beta“-Builds hier verwenden:

Erstellen
git clone --recursive https://github.com/dnSpyEx/dnSpy.git
cd dnSpy
# or dotnet build
./build.ps1 -NoMsbuild
Zum Debuggen von Unity-Spielen benötigen Sie ebenfalls dieses Repository: https://github.com/dnSpyEx/dnSpy-Unity-mono
Debugger
- Debuggen von .NET-Framework-, .NET- und Unity-Spielassemblys – kein Quellcode erforderlich
- Haltepunkte setzen und in beliebige Assemblys einsteigen
- Fenster für Lokale, Überwachen und Auto
- Variablenfenster unterstützen das Speichern von Variablen (z. B. entschlüsselte Byte-Arrays) auf der Festplatte oder die Anzeige im Hex-Editor (Speicherfenster)
- Objekt-IDs
- Mehrere Prozesse können gleichzeitig debuggt werden
- Beim Laden von Modulen anhalten
- Ablaufverfolgungspunkte (Tracepoints) und bedingte Haltepunkte
- Haltepunkte und Ablaufverfolgungspunkte exportieren/importieren
- Optionale Just-My-Code-Filter (JMC) für Systembibliotheken
- Fenster für Aufrufliste, Threads, Module und Prozesse
- Bei ausgelösten Ausnahmen anhalten (erste Chance)
- Variablenfenster unterstützen die Auswertung von C#-/Visual-Basic-Ausdrücken
- Dynamische Module können debuggt werden (dynamische Methoden jedoch nicht, aufgrund von CLR-Einschränkungen)
- Das Ausgabefenster protokolliert verschiedene Debugging-Ereignisse und zeigt standardmäßig Zeitstempel an :)
- Assemblys, die sich zur Laufzeit selbst entschlüsseln, können debuggt werden; dnSpy verwendet dann das In-Memory-Image. Sie können dnSpy auch zwingen, immer In-Memory-Images anstelle von Festplattendateien zu verwenden.
- Umgehungen für gängige Techniken zur Debugger-Erkennung
- Öffentliche API: Sie können eine Erweiterung schreiben oder das C#-Interactive-Fenster verwenden, um den Debugger zu steuern
Assembly-Editor
- Alle Metadaten können bearbeitet werden
- Bearbeiten Sie Methoden und Klassen in C# oder Visual Basic mit IntelliSense – kein Quellcode erforderlich
- Fügen Sie neue Methoden, Klassen oder Member in C# oder Visual Basic hinzu
- IL-Editor zum Bearbeiten von IL-Methodenkörpern auf niedriger Ebene
- Metadatentabellen auf niedriger Ebene können bearbeitet werden. Intern wird dafür der Hex-Editor verwendet.
Hex-Editor
- Klicken Sie im dekompilierten Code auf eine Adresse, um im Hex-Editor zum zugehörigen IL-Code zu gelangen
- Das Gegenteil des Obigen: Drücken Sie im Hex-Editor in einem IL-Methodenkörper F12, um zum dekompilierten Code oder einer anderen Hochsprachen-Darstellung der Bits zu gelangen. Das ist ideal, um herauszufinden, welche Anweisung ein Patch geändert hat.
- Hebt .NET-Metadatenstrukturen und PE-Strukturen hervor
- Tooltips zeigen weitere Informationen zum ausgewählten .NET-Metadaten-/PE-Feld
- Gehe zu Position, Datei, RVA
- Gehe zu .NET-Metadatentoken, Methodenkörper, #Blob-/#Strings-/#US-Heapoffset oder #GUID-Heapindex
- Verweisen folgen (Ctrl+F12)
Sonstiges
- BAML-Dekompilierer und Disassembler
- Blaue, helle und dunkle Designs (zusätzlich ein dunkles Hochkontrast-Design)
- Lesezeichen
- Das C#-Interactive-Fenster kann verwendet werden, um dnSpy zu skripten
- Assemblys nach Klassen, Methoden, Zeichenfolgen usw. durchsuchen
- Klassen- und Methodennutzung analysieren, Aufrufer finden usw.
- Mehrere Registerkarten und Registerkartengruppen
- Verweise werden hervorgehoben; mit Tab / Umschalt+Tab wechseln Sie zum nächsten Verweis
- Befehle „Gehe zum Einstiegspunkt“ und „Gehe zum Modulinitialisierer“
- Befehle „Gehe zu Metadatentoken“ oder „Gehe zu Metadatenzeile“
- Code-Tooltips (C# und Visual Basic)
- In Projekt exportieren
Liste weiterer von dnSpy verwendeter Open-Source-Bibliotheken
- ILSpy-Dekompilierer-Engine (C#- und Visual-Basic-Dekompilierer)
- Roslyn (C#- und Visual-Basic-Compiler)
- dnlib (.NET-Metadatenleser/-schreiber, der auch verschleierte Assemblys lesen kann)
- VS MEF (Schnelleres MEF bedeutet schnelleren Start)
- ClrMD (Zugriff auf Debugging-Informationen niedrigerer Ebene, die von der CorDebug-API nicht bereitgestellt werden)
- Iced (x86/x64-Disassembler)
- Newtonsoft.Json (JSON-Serialisierer & -Deserialisierer)
- NuGet.Configuration (Leser für NuGet-Konfigurationsdateien)
dnSpy übersetzen
Klicken Sie hier, wenn Sie helfen möchten, dnSpy in Ihre Muttersprache zu übersetzen.
Wiki
Buildanleitungen und weitere Dokumentation finden Sie im Wiki.
Lizenz
dnSpy ist unter der GPLv3 lizenziert.