Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
de4dot — .NET-Deobfusktor und -Unpacker. | Kitploit
Tools/GitHubGitHub/de4dot/de4dot
Statische AnalyseDynamische Code-Analyse (DAST)Reverse EngineeringMalware-AnalyseBinäranalyseArchived
GitHubde4dot/de4dot

de4dot

.NET-Deobfusktor und -Unpacker.

Repository anzeigen
7.4k2.8k82vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Beschreibung

de4dot ist ein quelloffener (GPLv3) .NET-Deobfuskator und Unpacker, geschrieben in C#. Er versucht sein Bestes, eine gepackte und obfuskierte Assembly nahezu in die ursprüngliche Assembly zurückzuverwandeln. Der Großteil der Obfuskation kann vollständig rückgängig gemacht werden (z. B. Zeichenfolgenverschlüsselung), aber die Umbenennung von Symbolen kann nicht rückgängig gemacht werden, da die ursprünglichen Namen (normalerweise) nicht Teil der obfuskierten Assembly sind.

Er verwendet dnlib zum Lesen und Schreiben von Assemblys. Stellen Sie also sicher, dass Sie es besorgen, sonst wird es nicht kompilieren.

Binärdateien

Holen Sie sich die Binärdateien vom Buildserver .

Es ist KOSTENLOS, aber es gibt KEINEN SUPPORT

Es gibt keinen Support. Schreiben Sie mir keine E-Mail, wenn Sie es nicht verwenden können oder wenn es eine Datei nicht deobfuscieren kann, die mit einem aktualisierten Obfuskator obfuskiert wurde.

Versuchen Sie stattdessen, de4dot selbst zu aktualisieren. Es ist viel einfacher, als Sie denken. Wenn Sie das nicht können, suchen Sie im Internet und Sie sollten ein paar Foren finden, in denen Sie Ihre Frage stellen können.

Funktionen

Hier ist eine pseudozufällige Liste der Dinge, die er tun wird, je nachdem, welcher Obfuskator zum Obfuskieren einer Assembly verwendet wurde:

  • Methoden inline einfügen. Einige Obfuskatoren verschieben kleine Teile einer Methode in eine andere statische Methode und rufen sie auf.
  • Zeichenfolgen statisch oder dynamisch entschlüsseln
  • Andere Konstanten entschlüsseln. Einige Obfuskatoren können auch andere Konstanten verschlüsseln, z. B. alle Ganzzahlen, alle Doubles usw.
  • Methoden statisch oder dynamisch entschlüsseln
  • Proxy-Methoden entfernen. Viele Obfuskatoren ersetzen die meisten/alle Call-Anweisungen durch einen Aufruf an einen Delegaten. Dieser Delegat ruft seinerseits die eigentliche Methode auf.
  • Symbole umbenennen. Auch wenn die meisten Symbole nicht wiederhergestellt werden können, benennt er sie in menschenlesbare Zeichenfolgen um. Manchmal können jedoch einige der ursprünglichen Namen wiederhergestellt werden.
  • Virtualisierten Code devirtualisieren
  • Ressourcen entschlüsseln. Viele Obfuskatoren haben eine Option, um .NET-Ressourcen zu verschlüsseln.
  • Eingebettete Dateien entschlüsseln. Viele Obfuskatoren haben eine Option, um andere Assemblys einzubetten und möglicherweise zu verschlüsseln/komprimieren.
  • Manipulationserkennungscode entfernen
  • Anti-Debug-Code entfernen
  • Kontrollfluss-Deobfuskation. Viele Obfuskatoren modifizieren den IL-Code, sodass er wie Spaghetti-Code aussieht, was das Verständnis des Codes sehr erschwert.
  • Klassenfelder wiederherstellen. Einige Obfuskatoren können Felder von einer Klasse in eine andere, vom Obfuskator erstellte Klasse verschieben.
  • Eine PE-EXE in eine .NET-EXE konvertieren. Einige Obfuskatoren verpacken eine .NET-Assembly in einer Win32-PE, sodass ein .NET-Decompiler die Datei nicht lesen kann.
  • Entfernt die meisten/alle vom Obfuskator hinzugefügten Junk-Klassen.
  • Behebt einige peverify-Fehler. Viele der Obfuskatoren sind fehlerhaft und erzeugen versehentlich nicht verifizierbaren Code.
  • Die Typen von Methodenparametern und Feldern wiederherstellen

Unterstützte Obfuskatoren/Packer

  • Agile.NET (aka 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

Einige der oben genannten Obfuskatoren werden selten verwendet (z. B. Goliath.NET), daher wurden sie viel weniger getestet. Helfen Sie mir, indem Sie Fehler oder Probleme melden, die Sie finden.

Warnung

Manchmal werden die obfuskierte Assembly und alle ihre Abhängigkeiten zur Ausführung in den Speicher geladen. Verwenden Sie eine sichere Sandbox-Umgebung, wenn Sie den Verdacht haben, dass die Assembly oder die Assemblys Schadsoftware sind.

Selbst wenn die aktuelle Version von de4dot eine bestimmte Assembly nicht zur Ausführung in den Speicher lädt, könnte es eine zukünftige Version tun.

So verwenden Sie de4dot

N00b-Benutzer

Ziehen Sie die Datei(en) auf de4dot.exe und warten Sie ein paar Sekunden.

Mehrere Dateien gleichzeitig deobfuscieren

Wenn mehr als eine Assembly obfuskiert wurde, müssen Sie sehr wahrscheinlich alle gleichzeitig deobfuscieren, es sei denn, Sie deaktivieren die Symbolumbenennung. Der Grund ist, dass, wenn Assembly A einen Verweis auf Klasse C in Assembly B hat und Sie nur in Assembly B Symbole umbenennen, Klasse C z. B. in Class0 umbenannt werden könnte, der Verweis in Assembly A jedoch weiterhin auf eine Klasse namens C in Assembly B verweist. Wenn Sie beide Assemblys gleichzeitig deobfuscieren, werden auch alle Verweise aktualisiert.

Alle obfuskierten Dateien finden und deobfuscieren

Die folgende Befehlszeile deobfusciert alle Assemblys, die von einem unterstützten Obfuskator obfuskiert wurden, und speichert die Assemblys in c:\output

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

-r bedeutet rekursive Suche. -ru bedeutet, dass unbekannte Dateien ignoriert werden sollen. -ro bedeutet, dass die Ausgabedateien im folgenden Verzeichnis abgelegt werden sollen. Normalerweise würden Sie zuerst c:\input nach c:\output kopieren und dann den Befehl ausführen. Auf diese Weise befinden sich alle Dateien in c:\output, auch Nicht-Assemblys und nicht verarbeitete Assemblys. Wenn de4dot fertig ist, doppelklicken Sie einfach auf die Hauptassembly in c:\output, und sie sollte hoffentlich starten.

Obfuskator erkennen

Verwenden Sie die Option -d, um den Obfuskator zu erkennen, ohne eine Assembly zu deobfuscieren.

Finden Sie alle .NET-Assemblys und erkennen Sie den Obfuskator. Wenn es sich um einen nicht unterstützten Obfuskator handelt oder wenn sie nicht obfuskiert ist, wird „Unknown obfuscator" ausgegeben.

de4dot -d -r c:\input

Dasselbe wie oben, außer dass nur angezeigt wird, welche Dateien von einem unterstützten Obfuskator obfuskiert wurden.

de4dot -d -r c:\input -ru

Obfuskator erkennen

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

Metadaten-Tokens beibehalten

In seltenen Fällen möchten Sie vielleicht die Metadaten-Tokens beibehalten. Verwenden Sie --preserve-tokens oder --preserve-table. Ziehen Sie auch die Verwendung von --keep-types in Betracht, da dadurch keine vom Obfuskator hinzugefügten Typen und Methoden entfernt werden. Eine weitere nützliche Option ist --dont-create-params. Wenn sie verwendet wird, erstellt der Renamer keine Param-Zeilen für Methodenparameter, die keine Param-Zeile haben. Auf diese Weise wird die ParamPtr-Tabelle nicht zu Ihren Assemblys hinzugefügt. Peverify hat einen Fehler und unterstützt dies nicht (Sie werden viele "errors" sehen).

Die #Strings-, #US- und #Blob-Heaps können ebenfalls beibehalten werden, indem Sie --preserve-strings, --preserve-us bzw. --preserve-blob verwenden. Von diesen dreien ist --preserve-us am nützlichsten, da die ldstr-Anweisung und module.ResolveString() direkt auf den #US-Heap verweisen.

--preserve-sig-data sollte verwendet werden, wenn der Obfuskator am Ende von Signaturen zusätzliche Daten hinzufügt, die er für eigene Zwecke verwendet, z. B. als Entschlüsselungsschlüssel. Confuser ist ein Obfuskator, der dies tut.

--preserve-tokens bewahrt alle wichtigen Tokens, aktiviert aber auch --preserve-us, --preserve-blob und --preserve-sig-data.

Tool herunterladen