Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
dotNIET — Plugin IDA Pro qui importe les symboles résolus au runtime dans les binaires .NET Native, en analysant SharedLibrary.dll et son PDB pour restaurer les imports manquants pour l'analyse. | Kitploit
Outils/GitHubGitHub/synacktiv/dotniet
Analyse StatiqueRétro-ingénierieAnalyse de Binaires
GitHubsynacktiv/dotniet

dotNIET

Plugin IDA Pro qui importe les symboles résolus au runtime dans les binaires .NET Native, en analysant SharedLibrary.dll et son PDB pour restaurer les imports manquants pour l'analyse.

Voir le dépôt
11211il y a 5 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
vladimir    

.NIET

Texte alternatif

.NIET est un plugin IDA Pro. Son objectif est d'importer les symboles manquants (généralement quelques milliers) qui sont résolus à l'exécution par les binaires compilés avec .NET Native. Ces symboles se trouvent dans SharedLibrary.dll et ne sont pas exportés par celle-ci.

.NIET a été testé sur IDA Pro 7.5 avec python 3.8 sur les plateformes suivantes :

  • Windows
  • Linux

Ce plugin prend actuellement en charge les versions suivantes du framework .NET Native :

  • 1.3
  • 1.6
  • 1.7
  • 2.2

Veuillez créer une issue si vous rencontrez une autre version.

Installation

Copiez ces éléments dans votre répertoire de plugins IDA Pro :

root@kitploit:~
dotNIET_plugin.py
dotNIET\

Dépendances

.NIET s'appuie sur pefile pour analyser les répertoires de ressources.

pefile peut être installé de la manière suivante :

root@kitploit:~
pip install pefile

Prérequis

Étant donné que les symboles sont importés depuis SharedLibrary.dll, cette dernière doit être fournie à .NIET avec son pdb (l'emplacement de celui-ci est recherché par le plugin dans _NT_SYMBOL_PATH).

Des fonctions d'aide sont implémentées pour identifier les versions du framework .NET Native et vérifier que le pdb de SharedLibrary.dll existe dans le chemin de symboles configuré.

Utilisation

Texte alternatif

.NIET peut être lancé à l'aide du raccourci Alt-Shift-N ou via le menu Edit/Plugins.

Au lancement, le plugin tente d'identifier la version du framework .NET Native du binaire courant. Tout ce que vous avez à faire est de sélectionner SharedLibrary.dll dans la version correspondante, puis de cliquer sur Run.

.NIET identifiera la version du framework .NET Native de la dll cible et affichera un message si les versions ne sont pas identiques. Les numéros de version Majeure et Mineure sont généralement les seuls qui comptent.

Fonctionnement

.NIET recherche la table des descripteurs d'importation personnalisés .NET Native dans la section .rdata. Pour ce faire, il lit à des offsets spécifiques d'une structure Custom Header puis analyse un tableau d'ordinaux.

Ce tableau d'ordinaux pointe vers différents emplacements dans les entrées de la table personnalisée de SharedLibrary.dll.

La résolution des symboles est effectuée en lançant une instance headless d'IDA Pro via son binaire idat afin d'analyser le pdb de SharedLibrary.dll.

Convention de nommage des symboles importés

Les symboles sont importés tels quels si possible, mais certains cas limites peuvent être rencontrés :

  • parfois, les adresses importées sont uniquement des symboles jmpstubs vers des offsets ou de simples instructions jmp vers des symboles. .NIET remplace leur nom de symbole par le nom de la fonction cible précédé de jmp_
  • certaines adresses résolues par le runtime .NET Native pointent vers des symboles après plusieurs déréférencements. Si .NIET ne trouve pas de symbole à une adresse importée, il essaie de déréférencer jusqu'à en trouver un. deref_X est ajouté à ce nom de symbole, s'il est trouvé, X étant le nombre de déréférencements.
  • certaines adresses pointent vers des offsets dans une table EETableSection. Étant novice en .NET Native, je n'ai aucune idée de ce que c'est (encore ?), donc ces adresses sont étiquetées EETableSection_XXX, XXX étant des offsets depuis EETableSection dans SharedLibrary.dll

Limitations connues

  • Ne fonctionne pas (encore) avec la version macOS d'IDA Pro
  • .NIET est plutôt lent car il nécessite d'analyser le pdb de binaires assez volumineux
  • l'option "restore .idata" (sorte d'option "annuler") ne fait que retirer les symboles importés. Comme IDA propage automatiquement les noms pendant l'importation, vous devrez probablement relancer l'analyse automatique si vous voulez supprimer toutes les traces des symboles importés. Une solution de contournement pourrait être de créer un instantané de la base de données avant d'exécuter le plugin.
  • .NIET n'analyse les symboles qu'à partir du module SharedLibrary.dll, alors que la routine d'origine chargée de la résolution des symboles offre probablement la possibilité d'analyser d'autres modules (je ne sais pas si cela se produit réellement en dehors du module SharedLibrary.dll)

Dépannage

Le fichier journal de idat est défini sur %tmpdir%/dotNIETlogs.txt.

Pourquoi ce nom

Parce que le reversing de .NET Native est un cauchemar

Télécharger l’outil