Le nom de ce site et celui de notre produit amènent régulièrement des visiteurs qui cherchent à décompiler un assembly .NET. VBReFormer ne traite que Visual Basic 5 et 6. Le .NET n'en fait pas partie et n'est prévu dans aucune version à venir. Les outils ci-dessous font ce travail, gratuitement.

Les outils

OutilLicencePlateformesParticularitéÉtat
ILSpyMIT, open sourceWindows en application de bureau, extension VS Code sur toutes plateformes, ligne de commande ilspycmdGénération de PDB, lecture des métadonnées, moteur réutilisable en bibliothèque NuGet (ICSharpCode.Decompiler)Maintenu
dnSpyExGPLv3, open sourceWindowsDébogueur intégré : exécution pas à pas dans le code décompilé, modification et réenregistrement de l'assemblyMaintenu. Le dépôt dnSpy d'origine est archivé depuis 2020 ; dnSpyEx en est le fork actif
dotPeekGratuit, propriétaire (JetBrains)WindowsExport en projet Visual Studio (.csproj), serveur de symboles, génération de PDBMaintenu
de4dotGPLv3, open sourceWindowsDésobfuscateur et non décompilateur : à passer avant les outils ci-dessus sur un assembly protégéDépôt d'origine à l'arrêt, des forks communautaires poursuivent le travail, notamment de4dot-cex

Les noms mènent aux pages de téléchargement officielles. État vérifié en août 2026.

Lequel utiliser

  • Lire le code d'un assembly — ILSpy. Le plus léger à installer, et le seul dont le moteur soit réutilisable dans vos propres outils.
  • Déboguer ou modifier un assembly — dnSpyEx. Il pose des points d'arrêt dans le code décompilé et réenregistre le binaire modifié.
  • Repartir d'un projet Visual Studio — dotPeek, qui exporte directement un .csproj.
  • Assembly protégé — de4dot d'abord, les autres ensuite.

Ce que donne une décompilation .NET

Un assembly conserve les noms des types, des membres et des paramètres ainsi que les signatures complètes : la sortie reste proche du code d'origine et se recompile généralement. Deux limites méritent d'être connues. Les noms des variables locales ne sont pas dans l'assembly, mais dans le fichier PDB, rarement distribué avec le binaire. Et les constructions que le compilateur réécrit — lambdas, fermetures, itérateurs, méthodes async — reviennent sous des noms fabriqués du type <>c__DisplayClass0_0, avec une structure équivalente à celle qui a été écrite mais différente d'elle.

Si le fichier n'est pas du .NET

Aucun de ces outils n'ouvrira un exécutable Visual Basic 5 ou 6 : le format n'a rien de commun avec un assembly .NET, et c'est l'écart entre P-Code et Code Natif qui y détermine ce qui est récupérable. C'est le domaine de VBReFormer, dont la version gratuite identifie le mode de compilation d'un binaire et permet d'en inspecter le contenu.