Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dotNIET — IDA-Pro-Plugin, das zur Laufzeit aufgelöste Symbole in .NET-Native-Binärdateien importiert, SharedLibrary.dll und ihre PDB parst, um fehlende Importe für die Analyse wiederherzustellen. | Kitploit
Tools/GitHubGitHub/synacktiv/dotniet
Statische AnalyseReverse EngineeringBinäranalyse
GitHubsynacktiv/dotniet

dotNIET

IDA-Pro-Plugin, das zur Laufzeit aufgelöste Symbole in .NET-Native-Binärdateien importiert, SharedLibrary.dll und ihre PDB parst, um fehlende Importe für die Analyse wiederherzustellen.

Repository anzeigen
11211vor 5 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
vladimir    

.NIET

Alt text

.NIET ist ein IDA-Pro-Plugin. Sein Zweck ist es, fehlende Symbole (normalerweise einige tausend) zu importieren, die zur Laufzeit von mit .NET Native kompilierten Binärdateien aufgelöst werden. Diese Symbole liegen in SharedLibrary.dll und werden von dieser nicht exportiert.

.NIET wurde auf IDA Pro 7.5 mit Python 3.8 auf den folgenden Plattformen getestet:

  • Windows
  • Linux

Dieses Plugin unterstützt derzeit die folgenden .NET-Native-Framework-Versionen:

  • 1.3
  • 1.6
  • 1.7
  • 2.2

Bitte erstelle ein Issue, wenn du auf eine andere Version stößt.

Installation

Kopiere diese Elemente in dein IDA-Pro-Plugin-Verzeichnis:

root@kitploit:~
dotNIET_plugin.py
dotNIET\

Abhängigkeiten

.NIET verwendet pefile, um Ressourcenverzeichnisse zu parsen.

pefile kann wie folgt installiert werden:

root@kitploit:~
pip install pefile

Anforderungen

Da Symbole aus SharedLibrary.dll importiert werden, muss diese .NIET zusammen mit ihrer pdb zur Verfügung gestellt werden (deren Speicherort wird vom Plugin innerhalb von _NT_SYMBOL_PATH gesucht).

Es sind Hilfsfunktionen implementiert, um .NET-Native-Framework-Versionen zu identifizieren und zu überprüfen, ob die pdb der SharedLibrary.dll im konfigurierten Symbolpfad vorhanden ist.

Verwendung

Alt text

.NIET kann über die Tastenkombination Alt-Shift-N oder über das Menü Edit/Plugins gestartet werden.

Beim Start versucht das Plugin, die aktuelle .NET-Native-Framework-Version der Binärdatei zu identifizieren. Alles, was du tun musst, ist, SharedLibrary.dll in der richtigen Version auszuwählen und dann auf Run zu klicken.

.NIET identifiziert die .NET-Native-Framework-Version der Ziel-DLL und zeigt eine Meldung an, wenn die Versionen nicht übereinstimmen. Normalerweise sind nur die Haupt- und Nebenversionsnummern (Major- und Minor-Version) relevant.

Funktionsweise

.NIET sucht nach der Tabelle der benutzerdefinierten Importdeskriptoren (custom import descriptors) für .NET Native im Abschnitt .rdata. Dazu liest es an bestimmten Offsets einer Custom Header-Struktur und parst anschließend ein Ordinalarray.

Dieses Ordinalarray zeigt auf verschiedene Stellen in den benutzerdefinierten Tabelleneinträgen einer SharedLibrary.dll.

Die Symbolauflösung wird erreicht, indem eine IDA-Pro-Headless-Instanz über ihre Binärdatei idat gestartet wird, um die pdb der SharedLibrary.dll zu parsen.

Benennungskonvention importierter Symbole

Symbole werden nach Möglichkeit unverändert importiert, aber einige Sonderfälle können auftreten:

  • Manchmal sind importierte Adressen lediglich jmpstubs-Symbole auf Offsets oder einzelne jmp-Anweisungen auf Symbole. Deren Symbolname wird von .NIET durch den Namen der Zielfunktion mit vorangestelltem jmp_ ersetzt.
  • Einige vom .NET-Native-Laufzeitsystem aufgelöste Adressen zeigen nach mehrfachen Dereferenzierungen auf Symbole. Wenn .NIET an einer importierten Adresse kein Symbol finden kann, versucht es zu dereferenzieren, bis es eines findet. deref_X wird an diesen Symbolnamen angehängt, sofern eines gefunden wird, wobei X die Anzahl der Dereferenzierungen ist.
  • Einige Adressen zeigen auf Offsets innerhalb einer EETableSection-Tabelle. Da ich neu bei .NET Native bin, habe ich (noch?) keine Ahnung, was das ist. Daher werden diese Adressen als EETableSection_XXX bezeichnet, wobei XXX Offsets von EETableSection innerhalb von SharedLibrary.dll sind.

Bekannte Einschränkungen

  • Funktioniert (noch) nicht mit der macOS-Version von IDA Pro
  • .NIET ist ziemlich langsam, da es das Parsen der pdb recht großer Binärdateien erfordert
  • Die Option „.idata wiederherstellen“ (eine Art „Rückgängig“-Option) entfernt lediglich die importierten Symbole. Da IDA Namen beim Import automatisch weiterverbreitet, musst du wahrscheinlich die Auto-Analyse erneut ausführen, wenn du alle Spuren importierter Symbole entfernen möchtest. Eine mögliche Abhilfe besteht darin, vor dem Ausführen des Plugins einen Datenbank-Snapshot zu erstellen.
  • .NIET parst Symbole ausschließlich aus dem Modul SharedLibrary.dll, obwohl die ursprüngliche Routine, die für die Symbolauflösung zuständig ist, vermutlich die Möglichkeit bietet, andere Module zu parsen (ich weiß nicht, ob dies außerhalb des Moduls SharedLibrary.dll tatsächlich vorkommt).

Fehlerbehebung

Das Logfile von idat ist unter %tmpdir%/dotNIETlogs.txt definiert.

Warum dieser Name

Weil das Reversen von .NET Native ein Albtraum ist.

Tool herunterladen