Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
de4dot — Désobfuscateur et unpacker .NET. | Kitploit
Outils/GitHubGitHub/de4dot/de4dot
Analyse StatiqueAnalyse Dynamique de Code (DAST)Rétro-ingénierieAnalyse de MalwareAnalyse de BinairesArchived
GitHubde4dot/de4dot

de4dot

Désobfuscateur et unpacker .NET.

Voir le dépôt
7.4k2.8k36il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Description

de4dot est un désobfuscateur et unpacker .NET open source (GPLv3) écrit en C#. Il fera de son mieux pour restaurer un assembly empaqueté et obfusqué pour le ramener presque à l'assembly d'origine. La plupart des obfuscations peuvent être complètement restaurées (par ex. le chiffrement des chaînes), mais le renommage des symboles est impossible à restaurer car les noms d'origine ne font (généralement) pas partie de l'assembly obfusqué.

Il utilise dnlib pour lire et écrire les assemblies, alors assurez-vous de l'obtenir, sinon il ne compilera pas.

Binaires

Téléchargez les binaires depuis le serveur de build .

C'est GRATUIT mais il n'y a AUCUN SUPPORT

Il n'y a aucun support. Ne m'envoyez pas d'e-mail si vous n'arrivez pas à l'utiliser ou s'il échoue à désobfusquer un fichier obfusqué avec un obfuscateur mis à jour.

Essayez plutôt de mettre à jour de4dot vous-même. C'est beaucoup plus facile que vous ne le pensez. Si vous n'y arrivez pas, cherchez sur Internet et vous devriez trouver quelques forums où poser votre question.

Fonctionnalités

Voici une liste pseudo-aléatoire de ce qu'il fera selon l'obfuscateur utilisé pour obfusquer un assembly :

  • Inliner les méthodes. Certains obfuscateurs déplacent de petites parties d'une méthode vers une autre méthode statique et l'appellent.
  • Déchiffrer les chaînes statiquement ou dynamiquement
  • Déchiffrer d'autres constantes. Certains obfuscateurs peuvent aussi chiffrer d'autres constantes, comme tous les entiers, tous les doubles, etc.
  • Déchiffrer les méthodes statiquement ou dynamiquement
  • Supprimer les méthodes proxy. De nombreux obfuscateurs remplacent la plupart/toutes les instructions d'appel par un appel à un délégué. Ce délégué appelle à son tour la véritable méthode.
  • Renommer les symboles. Même si la plupart des symboles ne peuvent pas être restaurés, il les renomme en chaînes lisibles par un humain. Parfois, certains des noms d'origine peuvent toutefois être restaurés.
  • Dévirtualiser le code virtualisé
  • Déchiffrer les ressources. De nombreux obfuscateurs ont une option pour chiffrer les ressources .NET.
  • Déchiffrer les fichiers intégrés. De nombreux obfuscateurs ont une option pour intégrer et éventuellement chiffrer/compresser d'autres assemblies.
  • Supprimer le code de détection d'altération
  • Supprimer le code anti-débogage
  • Désobfuscation du flux de contrôle. De nombreux obfuscateurs modifient le code IL pour qu'il ressemble à du code spaghetti, rendant le code très difficile à comprendre.
  • Restaurer les champs de classe. Certains obfuscateurs peuvent déplacer des champs d'une classe vers une autre classe créée par l'obfuscateur.
  • Convertir un exe PE en exe .NET. Certains obfuscateurs encapsulent un assembly .NET dans un PE Win32 afin qu'un décompilateur .NET ne puisse pas lire le fichier.
  • Supprime la plupart/toutes les classes parasites ajoutées par l'obfuscateur.
  • Corrige certaines erreurs de peverify. Beaucoup d'obfuscateurs sont bogués et créent par erreur du code non vérifiable.
  • Restaurer les types des paramètres de méthode et des champs.

Obfuscateurs/packers pris en charge

  • Agile.NET (alias CliSecure)
  • Babel.NET
  • CodeFort
  • CodeVeil
  • CodeWall
  • CryptoObfuscator
  • DeepSea Obfuscator
  • Dotfuscator
  • .NET Reactor
  • Eazfuscator.NET
  • Goliath.NET
  • ILProtector
  • MaxtoCode
  • MPRESS
  • Rummage
  • Skater.NET
  • SmartAssembly
  • Spices.Net
  • Xenocode

Certains des obfuscateurs ci-dessus sont rarement utilisés (par ex. Goliath.NET), ils ont donc été beaucoup moins testés. Aidez-moi en signalant les bogues ou les problèmes que vous trouvez.

Avertissement

Parfois, l'assembly obfusqué et toutes ses dépendances sont chargés en mémoire pour être exécutés. Utilisez un environnement sandbox sûr si vous soupçonnez que l'assembly ou les assemblies sont des malwares.

Même si la version actuelle de de4dot ne charge pas un assembly donné en mémoire pour l'exécuter, une version future pourrait le faire.

Comment utiliser de4dot

Utilisateurs débutants

Glissez-déposez le ou les fichiers sur de4dot.exe et attendez quelques secondes.

Désobfusquer plus d'un fichier à la fois

Lorsque plusieurs assemblies ont été obfusqués, il est très probable que vous deviez tous les désobfusquer en même temps, sauf si vous désactivez le renommage des symboles. La raison est que si l'assembly A a une référence à la classe C dans l'assembly B, et que vous renommez les symboles uniquement dans l'assembly B, la classe C pourrait être renommée en par ex. Class0, mais la référence dans l'assembly A référence toujours une classe nommée C dans l'assembly B. Si vous désobfusquez les deux assemblies en même temps, toutes les références seront également mises à jour.

Trouver tous les fichiers obfusqués et les désobfusquer

La ligne de commande suivante désobfusquera tous les assemblies qui ont été obfusqués par un obfuscateur pris en charge et enregistrera les assemblies dans c:\output

de4dot -r c:\input -ru -ro c:\output

-r signifie recherche récursive. -ru signifie qu'il doit ignorer les fichiers inconnus. -ro signifie qu'il doit placer les fichiers de sortie dans le répertoire suivant. En général, vous copiez d'abord c:\input vers c:\output, puis vous exécutez la commande. Ainsi, tous les fichiers seront dans c:\output, même ceux qui ne sont pas des assemblies et les assemblies non traités. Une fois de4dot terminé, il vous suffit de double-cliquer sur l'assembly principal dans c:\output et il devrait, espérons-le, démarrer.

Détecter l'obfuscateur

Utilisez l'option -d pour détecter l'obfuscateur sans désobfusquer aucun assembly.

Recherche tous les assemblies .NET et détecte l'obfuscateur. Si c'est un obfuscateur non pris en charge ou s'il n'est pas obfusqué, il affichera « Unknown obfuscator ».

de4dot -d -r c:\input

Identique à la commande précédente, sauf qu'il affichera uniquement les fichiers qui ont été obfusqués par un obfuscateur pris en charge.

de4dot -d -r c:\input -ru

Détecter l'obfuscateur

de4dot -d file1.dll file2.dll file3.dll

Préserver les jetons de métadonnées

Parfois, dans de rares cas, vous pouvez vouloir préserver les jetons de métadonnées. Utilisez --preserve-tokens ou --preserve-table. Pensez également à utiliser --keep-types car cela ne supprimera aucun type ni aucune méthode ajoutés par l'obfuscateur. Une autre option utile est --dont-create-params. Si elle est utilisée, le renommeur ne créera pas de lignes Param pour les paramètres de méthode qui n'ont pas de ligne Param. Ainsi, la table ParamPtr ne sera pas ajoutée à vos assemblies. Peverify a un bug et ne la prend pas en charge (vous verrez beaucoup d'« erreurs »).

Les tas #Strings, #US et #Blob peuvent également être préservés en utilisant respectivement --preserve-strings, --preserve-us et --preserve-blob. De ces trois, --preserve-us est le plus utile car l'instruction ldstr et module.ResolveString() référencent directement le tas #US.

--preserve-sig-data doit être utilisé si l'obfuscateur ajoute des données supplémentaires à la fin des signatures qu'il utilise à ses propres fins, par ex. comme clés de déchiffrement. Confuser est un obfuscateur qui fait cela.

--preserve-tokens préserve tous les jetons importants mais activera également --preserve-us, --preserve-blob et --preserve-sig-data.

Télécharger l’outil