dnSpyEx
dnSpyEx est une continuation non officielle du projet dnSpy qui est un débogueur et un éditeur d'assemblages .NET. Vous pouvez l'utiliser pour éditer et déboguer des assemblages même si vous n'avez pas de code source disponible. Principales fonctionnalités :
- Déboguer des assemblages .NET et Unity
- Éditer des assemblages .NET et Unity
- Thèmes clair et sombre
Voir ci-dessous pour plus de fonctionnalités


Binaires
Dernière version stable : https://github.com/dnSpyEx/dnSpy/releases
Si vous aimez vivre à la pointe, vous pouvez utiliser les dernières versions 'beta' depuis :

Compilation
git clone --recursive https://github.com/dnSpyEx/dnSpy.git
cd dnSpy
# or dotnet build
./build.ps1 -NoMsbuild
Pour déboguer les jeux Unity, vous avez besoin de ce dépôt aussi : https://github.com/dnSpyEx/dnSpy-Unity-mono
Débogueur
- Déboguer des assemblages .NET Framework, .NET et Unity, sans code source requis
- Définir des points d'arrêt et exécuter pas à pas dans n'importe quel assemblage
- Fenêtres Variables locales, espions, automatiques
- Les fenêtres de variables permettent de sauvegarder des variables (par exemple des tableaux d'octets déchiffrés) sur le disque ou de les visualiser dans l'éditeur hexadécimal (fenêtre mémoire)
- Identifiants d'objet
- Plusieurs processus peuvent être débogués en même temps
- Arrêt sur chargement de module
- Points de trace et points d'arrêt conditionnels
- Exporter/importer des points d'arrêt et des points de trace
- Filtres de pas à pas optionnels Just My Code (JMC) pour les bibliothèques système
- Fenêtres de pile d'appels, threads, modules, processus
- Arrêt sur exceptions levées (première chance)
- Les fenêtres de variables prennent en charge l'évaluation d'expressions C# / Visual Basic
- Les modules dynamiques peuvent être débogués (mais pas les méthodes dynamiques en raison des limitations du CLR)
- La fenêtre de sortie journalise divers événements de débogage et affiche les horodatages par défaut :)
- Les assemblages qui se déchiffrent eux-mêmes à l'exécution peuvent être débogués, dnSpy utilisera l'image en mémoire. Vous pouvez également forcer dnSpy à toujours utiliser les images en mémoire au lieu des fichiers disque.
- Contournements pour les techniques courantes de détection de débogueur
- API publique, vous pouvez écrire une extension ou utiliser la fenêtre Interactive C# pour contrôler le débogueur
Éditeur d'assemblage
- Toutes les métadonnées peuvent être modifiées
- Éditer des méthodes et des classes en C# ou Visual Basic avec IntelliSense, sans code source requis
- Ajouter de nouvelles méthodes, classes ou membres en C# ou Visual Basic
- Éditeur IL pour l'édition de bas niveau du corps des méthodes IL
- Les tables de métadonnées de bas niveau peuvent être modifiées. Cela utilise l'éditeur hexadécimal en interne.
Éditeur hexadécimal
- Cliquer sur une adresse dans le code décompilé pour accéder à son code IL dans l'éditeur hexadécimal
- L'inverse de ce qui précède, appuyez sur F12 dans un corps IL dans l'éditeur hexadécimal pour accéder au code décompilé ou à une autre représentation de haut niveau des bits. C'est idéal pour découvrir quelle instruction un correctif a modifié.
- Met en évidence les structures de métadonnées .NET et les structures PE
- Les info-bulles affichent plus d'informations sur le champ de métadonnées .NET / PE sélectionné
- Aller à la position, au fichier, au RVA
- Aller au jeton de métadonnées .NET, au corps de méthode, au décalage du tas #Blob / #Strings / #US ou à l'index du tas #GUID
- Suivre les références (Ctrl+F12)
Autres
- Décompilateur et désassembleur BAML
- Thèmes bleu, clair et sombre (et un thème sombre à contraste élevé)
- Signets
- La fenêtre Interactive C# peut être utilisée pour scripter dnSpy
- Rechercher des assemblages pour des classes, méthodes, chaînes, etc.
- Analyser l'utilisation des classes et des méthodes, trouver les appelants, etc.
- Onglets multiples et groupes d'onglets
- Les références sont mises en surbrillance, utilisez Tab / Maj+Tab pour passer à la référence suivante
- Commandes Aller au point d'entrée et à l'initialiseur de module
- Commandes Aller au jeton de métadonnées ou à la ligne de métadonnées
- Info-bulles de code (C# et Visual Basic)
- Exporter vers un projet
Liste des autres bibliothèques open source utilisées par dnSpy
- ILSpy decompiler engine (décompilateurs C# et Visual Basic)
- Roslyn (compilateurs C# et Visual Basic)
- dnlib (lecteur/écrivain de métadonnées .NET qui peut aussi lire des assemblages obfusqués)
- VS MEF (MEF plus rapide = démarrage plus rapide)
- ClrMD (Accès à des informations de débogage de bas niveau non fournies par l'API CorDebug)
- Iced (désassembleur x86/x64)
- Newtonsoft.Json (sérialiseur et désérialiseur JSON)
- NuGet.Configuration (lecteur de fichiers de configuration NuGet)
Traduire dnSpy
Cliquez ici si vous souhaitez aider à traduire dnSpy dans votre langue maternelle.
Wiki
Voir le Wiki pour les instructions de compilation et autre documentation.
Licence
dnSpy est sous licence GPLv3.