dnSpyEx
dnSpyEx è un proseguimento non ufficiale del progetto dnSpy, un debugger ed editor di assembly .NET. Puoi usarlo per modificare e fare il debug di assembly anche se non hai alcun codice sorgente disponibile. Caratteristiche principali:
- Debug di assembly .NET e Unity
- Modifica di assembly .NET e Unity
- Temi chiaro e scuro
Vedi sotto per altre funzionalità


Binari
Ultima release stabile: https://github.com/dnSpyEx/dnSpy/releases
Se ti piace vivere al limite, puoi usare le ultime build "beta" da:

Compilazione
git clone --recursive https://github.com/dnSpyEx/dnSpy.git
cd dnSpy
# oppure dotnet build
./build.ps1 -NoMsbuild
Per fare il debug di giochi Unity, hai bisogno anche di questo repository: https://github.com/dnSpyEx/dnSpy-Unity-mono
Debugger
- Debug di assembly .NET Framework, .NET e Unity, senza bisogno del codice sorgente
- Imposta punti di interruzione ed esegui passo-passo in qualsiasi assembly
- Finestre Variabili locali, Controllo, Auto
- Le finestre delle variabili supportano il salvataggio di variabili (es. array di byte decifrati) su disco o la loro visualizzazione nell'editor esadecimale (finestra di memoria)
- ID di oggetti
- È possibile eseguire il debug di più processi contemporaneamente
- Interruzione al caricamento del modulo
- Punti di traccia e punti di interruzione condizionali
- Esportazione/importazione di punti di interruzione e punti di traccia
- Filtri opzionali Just My Code (JMC) per l'esecuzione passo-passo nelle librerie di sistema
- Finestre Stack di chiamata, Thread, Moduli, Processi
- Interruzione sulle eccezioni generate (prima opportunità)
- Le finestre delle variabili supportano la valutazione di espressioni C# / Visual Basic
- I moduli dinamici possono essere sottoposti a debug (ma non i metodi dinamici a causa delle limitazioni del CLR)
- La finestra di output registra vari eventi di debug e mostra per impostazione predefinita i timestamp :)
- Gli assembly che si decifrano automaticamente a runtime possono essere sottoposti a debug; dnSpy userà l'immagine in memoria. Puoi anche forzare dnSpy a usare sempre le immagini in memoria invece dei file su disco.
- Bypass per le tecniche comuni di rilevamento del debugger
- API pubblica: puoi scrivere un'estensione o usare la finestra C# Interactive per controllare il debugger
Editor di Assembly
- Tutti i metadati possono essere modificati
- Modifica metodi e classi in C# o Visual Basic con IntelliSense, senza bisogno del codice sorgente
- Aggiungi nuovi metodi, classi o membri in C# o Visual Basic
- Editor IL per la modifica a basso livello del corpo dei metodi IL
- Le tabelle di metadati a basso livello possono essere modificate. Internamente utilizza l'editor esadecimale.
Editor esadecimale
- Clicca su un indirizzo nel codice decompilato per andare al suo codice IL nell'editor esadecimale
- L'inverso di quanto sopra: premi F12 in un corpo IL nell'editor esadecimale per andare al codice decompilato o ad altre rappresentazioni ad alto livello dei bit. È ottimo per scoprire quale istruzione è stata modificata da una patch.
- Evidenzia le strutture dei metadati .NET e le strutture PE
- I suggerimenti mostrano maggiori informazioni sul campo .NET metadati/PE selezionato
- Vai a posizione, file, RVA
- Vai a token di metadati .NET, corpo del metodo, offset heap #Blob / #Strings / #US o indice heap #GUID
- Segui riferimenti (Ctrl+F12)
Altro
- Decompilatore e disassemblatore BAML
- Tema blu, chiaro e scuro (e un tema scuro ad alto contrasto)
- Segnalibri
- La finestra C# Interactive può essere usata per scrivere script per dnSpy
- Cerca negli assembly classi, metodi, stringhe, ecc.
- Analizza l'uso di classi e metodi, trova chiamanti, ecc.
- Schede multiple e gruppi di schede
- I riferimenti vengono evidenziati; usa Tab / Shift+Tab per spostarti al riferimento successivo
- Vai al punto di ingresso e ai comandi di inizializzazione del modulo
- Vai al token di metadati o ai comandi di riga di metadati
- Suggerimenti per il codice (C# e Visual Basic)
- Esporta in progetto
Elenco di altre librerie open source utilizzate da dnSpy
- Motore di decompilazione ILSpy (decompilatori C# e Visual Basic)
- Roslyn (compilatori C# e Visual Basic)
- dnlib (lettore/scrittore di metadati .NET in grado di leggere anche assembly offuscati)
- VS MEF (MEF più veloce per un avvio più rapido)
- ClrMD (Accesso a informazioni di debug di basso livello non fornite dall'API CorDebug)
- Iced (disassemblatore x86/x64)
- Newtonsoft.Json (serializzatore e deserializzatore JSON)
- NuGet.Configuration (lettore di file di configurazione NuGet)
Traduzione di dnSpy
Clicca qui se vuoi aiutare a tradurre dnSpy nella tua lingua madre.
Wiki
Vedi la Wiki per le istruzioni di compilazione e altra documentazione.
Licenza
dnSpy è concesso in licenza GPLv3.