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
Get-PDInvokeImports — Modulo PowerShell per il rilevamento automatico di P/Invoke, Dynamic P/Invoke e D/Invoke in assembly .NET. Rivela chiamate API non gestite, MDToken e posizioni di esportazione nei segnalibri di DnSpy per l'analisi malware. | Kitploit
Strumenti/GitHubGitHub/dump-guy/get-pdinvokeimports
Analisi StaticaReverse EngineeringAnalisi MalwareAnalisi di Binari
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

Modulo PowerShell per il rilevamento automatico di P/Invoke, Dynamic P/Invoke e D/Invoke in assembly .NET. Rivela chiamate API non gestite, MDToken e posizioni di esportazione nei segnalibri di DnSpy per l'analisi malware.

Vedi Repository

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
5464 anni faRevisionato da Kitploit

Get-PDInvokeImports

Descrizione:

Get-PDInvokeImports è uno strumento (modulo PowerShell) in grado di eseguire il rilevamento automatico dell'uso di P/Invoke, Dynamic P/Invoke e D/Invoke in un assembly. Mostra tutte le posizioni da cui vengono referenziati ed esporta tutto in DnSpy_Bookmarks.xml.

Questo modulo PS può essere utile e d'aiuto durante il reversing di assembly .NET per rivelare rapidamente le chiamate a funzioni API non gestite utilizzate nell'assembly. A volte gli assembly malware sono pieni di codice spazzatura dove la funzionalità principale è implementata tramite chiamate dirette WIN API o NTAPI.
Get-PDInvokeImports ti consente di ottenere una rapida panoramica di quali P/Invoke, Dynamic P/Invoke e D/Invoke sono utilizzati nell'assembly – Mostrerà quali funzioni sono usate + MDTokens, dove sono dichiarate, e tutte le posizioni in cui sono usate dal codice.
Consente di esportare tutte le posizioni in cui vengono rilevati P/Invoke, Dynamic P/Invoke e D/Invoke referenziati dal codice in DnSpy Bookmarks.xml.

Esempio: Immagina un assembly da 1MB pieno di codice spazzatura + offuscamento CF dove la funzionalità principale è raggiunta tramite chiamate WinAPI\NTAPI non gestite.

Questo modulo PS è scritto in PowerShell ed è pienamente compatibile con Windows PowerShell (.NET Framework) e PowerShell Core (basato su .NET, .NET Core). Utilizza dnlib per analizzare l'assembly e .NET reflection per caricare dnlib. Dnlib è disponibile per .NET framework e .NET standard – significa semplicemente che si può usare questo modulo PS a seconda di dnlib su Windows e anche su sistemi Linux.

Cosa sono P/Invoke, Dynamic P/Invoke e D/Invoke?

In breve, queste sono possibili implementazioni per chiamare codice non gestito da codice gestito (semplificato – possono essere usati per chiamare direttamente WinAPI/NTAPI da .NET)
Alcuni sono più facili da implementare, altri sono migliori per evitare il rilevamento AV e l'hooking.

Maggiori informazioni:

P/Invoke – [PInvoke]
D/Invoke – [DInvoke]
Dynamic P/Invoke – [Dynamic PInvoke]

Installazione:

[Releases] contiene già dnlib compilato per la piattaforma specificata + lo script Get-PDInvokeImports.ps1.
Windows – Scarica [release] (Usa da Windows PowerShell o PowerShell Core)
Linux – Scarica [release] (Usa da PowerShell Core)

Se necessario – compila dnlib autonomamente (Windows – .NET Framework, Linux-netstandard)

Utilizzo:

Video: [YouTube]

[PARAMETRO] -PathToAssembly

Parametro obbligatorio.
Specifica il percorso dell'assembly da analizzare.

[PARAMETRO] -PathToDnlib

Parametro opzionale.
Percorso di sistema a dnlib.dll.

Se PowerShell viene eseguito dalla posizione di dnlib.dll – questo parametro può essere ignorato, altrimenti specificare questo parametro.

[PARAMETRO] -ExportDnSpyBookmarks

Parametro opzionale.
Utilizzato per esportare tutte le posizioni rilevate di P/Invoke, Dynamic P/Invoke e D/Invoke referenziate dal codice in un file XML di segnalibri DnSpy (DnSpy_Bookmarks.xml)

Simile a DnSpy-Analyze-UsedBy (Buona panoramica su dove tutti i PInvoke e DInvoke sono utilizzati nell'intero codice)

Quindi è possibile importarlo in DnSpy tramite la finestra Segnalibri (DnSpy -> Visualizza -> Segnalibri -> Finestra segnalibri -> Importa segnalibri da file -> seleziona DnSpy_Bookmarks.xml)

[ESEMPI]

root@kitploit:~
PS> Import-Module .\Get-PDInvokeImports.ps1
PS> Get-PDInvokeImports -PathToAssembly 'C:\testfiles\malware.exe'
PS> Get-PDInvokeImports -PathToAssembly .\malware.exe –ExportDnSpyBookmarks
PS> Get-PDInvokeImports -PathToAssembly 'C:\testfiles\malware.exe' -PathToDnlib "C:\dnlib.dll" –ExportDnSpyBookmarks

Esempi Linux:

Esempi Windows:

Osservazioni

Il rilevamento dovrebbe essere abbastanza robusto da sconfiggere alcuni offuscamenti comuni.
Testato con gli offuscatori più comuni come SmartAssembly, ConfuserEx, ecc.

Dettagli interni del rilevamento: P/Invoke viene rilevato tramite l'attributo PinvokeImpl che deve essere sempre presente.
D/Invoke viene rilevato tramite l'attributo "UnmanagedFunctionPointerAttribute" e "CallingConvention" (Questo potrebbe essere sconfitto in determinate circostanze – ma lo lascio all'immaginazione del RedTeam (ti batterò comunque))
Il rilevamento di Dynamic P/Invoke si basa sulla ricerca di un metodoX che referenzia DefinePInvokeMethod() + tutti i metodiY che referenziano methodX.

Dipendenze:

[dnlib] (lettore/scrittore di metadati .NET in grado di leggere anche assembly offuscati)
[DnSpyEx - opzionale]

Scarica lo strumento