Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dotNIET — Plugin per IDA Pro che importa i simboli risolti a runtime nei binari .NET Native, analizzando SharedLibrary.dll e il relativo PDB per ripristinare gli import mancanti per l'analisi. | Kitploit
Strumenti/GitHubGitHub/synacktiv/dotniet
Analisi StaticaReverse EngineeringAnalisi di Binari
GitHubsynacktiv/dotniet

dotNIET

Plugin per IDA Pro che importa i simboli risolti a runtime nei binari .NET Native, analizzando SharedLibrary.dll e il relativo PDB per ripristinare gli import mancanti per l'analisi.

Vedi Repository
112115 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
vladimir    

.NIET

Testo alternativo

.NIET è un plugin per IDA Pro. Il suo scopo è importare i simboli mancanti (di solito poche migliaia) che vengono risolti a runtime da binari compilati con .NET Native. Questi simboli risiedono in SharedLibrary.dll e non vengono esportati da quest'ultimo.

.NIET è stato testato su IDA Pro 7.5 usando python 3.8 sulle seguenti piattaforme:

  • Windows
  • Linux

Questo plugin supporta attualmente le seguenti versioni del framework .NET Native:

  • 1.3
  • 1.6
  • 1.7
  • 2.2

Per favore, apri una issue se incontri un'altra versione.

Installazione

Copia questi elementi nella directory dei plugin di IDA Pro:

root@kitploit:~
dotNIET_plugin.py
dotNIET\

Dipendenze

.NIET si basa su pefile per analizzare le directory delle risorse.

pefile può essere installato come segue:

root@kitploit:~
pip install pefile

Requisiti

Poiché i simboli vengono importati da SharedLibrary.dll, questo deve essere fornito a .NIET insieme al suo pdb (la sua posizione viene cercata dal plugin all'interno di _NT_SYMBOL_PATH).

Sono implementati helper per identificare le versioni del framework .NET Native e per verificare che il pdb di SharedLibrary.dll esista all'interno del percorso dei simboli configurato.

Utilizzo

.NIET può essere avviato usando la scorciatoia Alt-Shift-N o tramite il menu Edit/Plugins.

All'avvio, il plugin tenta di identificare la versione corrente del framework .NET Native del binario. Tutto quello che devi fare è selezionare SharedLibrary.dll nella versione giusta e poi fare clic su Run.

.NIET identificherà la versione del framework .NET Native della dll di destinazione e mostrerà un messaggio se le versioni non sono le stesse. Di solito solo i numeri di versione Major e Minor sono quelli che contano.

Funzionamento

.NIET cerca la tabella dei descrittori di importazione personalizzati di .NET Native all'interno della sezione .rdata. Per farlo, legge a offset specifici di una struttura Custom Header e poi analizza un array di ordinali.

Questo array di ordinali punta a varie posizioni all'interno delle voci della tabella personalizzata di SharedLibrary.dll.

La risoluzione dei simboli viene ottenuta avviando un'istanza headless di IDA Pro tramite il suo binario idat per analizzare il pdb di SharedLibrary.dll.

Convenzione di denominazione dei simboli importati

I simboli vengono importati così come sono, se possibile, ma possono presentarsi alcuni casi particolari:

  • a volte gli indirizzi importati sono esclusivamente simboli jmpstubs verso offset o singole istruzioni jmp verso simboli. Il loro nome simbolico viene sostituito da .NIET con il nome della funzione di destinazione preceduto da jmp_
  • alcuni indirizzi risolti dal runtime .NET Native puntano a simboli dopo più dereferenze. Se .NIET non riesce a trovare un simbolo a un indirizzo importato, tenta di dereferenziare finché non ne trova uno. deref_X viene aggiunto al nome di questo simbolo, se trovato, con X che indica il numero di dereferenze.
  • alcuni indirizzi puntano a offset all'interno di una tabella EETableSection. Essendo nuovo a .NET Native, non ho idea di cosa sia (ancora?), quindi questi indirizzi vengono etichettati come EETableSection_XXX, dove XXX sono gli offset da EETableSection all'interno di SharedLibrary.dll.

Limitazioni note

  • Non funziona (ancora) sulla versione macOS di IDA Pro
  • .NIET è piuttosto lento perché richiede di analizzare il pdb di binari piuttosto grandi
  • L'opzione "restore .idata" (una sorta di opzione "annulla") rimuove soltanto i simboli importati. Poiché IDA propaga automaticamente i nomi durante l'importazione, probabilmente dovrai eseguire nuovamente l'analisi automatica se vuoi rimuovere tutte le tracce dei simboli importati. Una soluzione alternativa potrebbe essere creare uno snapshot del database prima di eseguire il plugin.
  • .NIET analizza i simboli esclusivamente dal modulo SharedLibrary.dll, sebbene la routine originale incaricata della risoluzione dei simboli offra probabilmente la possibilità di analizzare altri moduli (non so se questo avvenga realmente oltre al modulo SharedLibrary.dll).

Risoluzione dei problemi

Il file di log di idat è definito in %tmpdir%/dotNIETlogs.txt

Perché questo nome

Perché fare reverse engineering di .NET Native è un incubo.

Scarica lo strumento