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
Get-PDInvokeImports — Module PowerShell pour la détection automatique de P/Invoke, Dynamic P/Invoke et D/Invoke dans les assemblys .NET. Révèle les appels API non managés, les MDTokens et exporte les emplacements vers les signets DnSpy pour l'analyse de malwares. | Kitploit
Outils/GitHubGitHub/dump-guy/get-pdinvokeimports
Analyse StatiqueRétro-ingénierieAnalyse de MalwareAnalyse de Binaires
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

Module PowerShell pour la détection automatique de P/Invoke, Dynamic P/Invoke et D/Invoke dans les assemblys .NET. Révèle les appels API non managés, les MDTokens et exporte les emplacements vers les signets DnSpy pour l'analyse de malwares.

Voir le dépôt

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
546il y a 4 ansVérifié par Kitploit

Get-PDInvokeImports

Description:

Get-PDInvokeImports est un outil (module PowerShell) capable d'effectuer une détection automatique de l'utilisation de P/Invoke, Dynamic P/Invoke et D/Invoke dans un assembly. Il montre tous les emplacements à partir desquels ils sont référencés et exporte le tout vers DnSpy_Bookmarks.xml

Ce module PowerShell peut être utile et pratique lors du reverse engineering d'assemblies .NET pour révéler rapidement les appels aux fonctions API non managées utilisées dans l'assembly. Parfois, les assemblies malveillants sont remplis de code indésirable où la fonctionnalité principale est implémentée par des appels directs WIN API ou NTAPI.
Get-PDInvokeImports vous permet d'obtenir un aperçu rapide des P/Invoke, Dynamic P/Invoke et D/Invoke utilisés dans l'assembly - Il vous montrera quelles fonctions sont utilisées + MDTokens, où elles sont déclarées, et tous les emplacements où elles sont utilisées dans le code.
Il permet d'exporter tous les emplacements où des P/Invoke, Dynamic P/Invoke et D/Invoke sont détectés comme étant référencés depuis le code vers DnSpy Bookmarks.xml

Exemple : Imaginez un assembly de 1 Mo rempli de code indésirable + d'obfuscation CF où la fonctionnalité principale est atteinte via des appels WinAPI\NTAPI non managés.

Ce module PS est écrit en PowerShell et est entièrement compatible avec Windows PowerShell (.NET Framework) et PowerShell Core (basé sur .NET, .NET Core). Il utilise dnlib pour analyser l'assembly et la réflexion .NET pour charger dnlib. Dnlib est disponible pour .NET Framework et .NET Standard - cela signifie simplement que l'on peut utiliser ce module PS en fonction de dnlib sur Windows ainsi que sur Linux.

Qu'est-ce que P/Invoke, Dynamic P/Invoke et D/Invoke ?

En très bref, ce sont des implémentations possibles permettant d'appeler du code non managé à partir de code managé (simplifié - peut être utilisé pour appeler directement WinAPI/NTAPI depuis .NET)
Certaines sont plus faciles à implémenter, d'autres sont meilleures pour éviter la détection AV et le hooking.

Plus d'informations :

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

Installation:

[Releases] contient déjà dnlib compilé pour la plateforme spécifiée + le script Get-PDInvokeImports.ps1.
Windows – Télécharger [release] (Utiliser depuis Windows PowerShell ou PowerShell Core)
Linux – Télécharger [release] (Utiliser depuis PowerShell Core)

Si nécessaire - compilez dnlib vous-même (Windows – .NET Framework, Linux-netstandard)

Utilisation:

Vidéo: [YouTube]

[PARAMÈTRE] -PathToAssembly

Paramètre obligatoire.
Spécifie le chemin de l'assembly à analyser.

[PARAMÈTRE] -PathToDnlib

Paramètre optionnel.
Chemin système vers dnlib.dll.

Si PowerShell est exécuté depuis l'emplacement de dnlib.dll - ce paramètre peut être ignoré, sinon spécifiez ce paramètre.

[PARAMÈTRE] -ExportDnSpyBookmarks

Paramètre optionnel.
Utilisé pour exporter tous les emplacements détectés de P/Invoke, Dynamic P/Invoke et D/Invoke référencés depuis le code vers un fichier XML DnSpy Bookmarks (DnSpy_Bookmarks.xml)

Similaire à DnSpy-Analyze-UsedBy (Aperçu agréable de l'endroit où tous les PInvoke et DInvoke sont utilisés dans l'ensemble du code)

Il est donc possible de l'importer dans DnSpy via la fenêtre Bookmarks (DnSpy -> Affichage -> Bookmarks -> Fenêtre Bookmarks -> Importer les signets depuis un fichier -> sélectionner DnSpy_Bookmarks.xml)

[EXEMPLES]

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

Exemples Linux :

Exemples Windows :

Remarques

La détection devrait être suffisamment robuste pour déjouer certaines obfuscations courantes..
Testé avec les obfuscateurs les plus courants comme SmartAssembly, ConfuserEx, etc.

Fonctionnement interne de la détection : P/Invoke est détecté via l'attribut PinvokeImpl qui doit toujours être présent.
D/Invoke est détecté via l'attribut "UnmanagedFunctionPointerAttribute" et "CallingConvention" (Cela pourrait être contourné dans certaines circonstances – mais je laisse cela à l'imagination de la RedTeam (je vous battrai de toute façon)
La détection de Dynamic P/Invoke est basée sur la recherche de methodX référençant DefinePInvokeMethod() + toutes les méthodesY référençant methodX.

Dépendances :

[dnlib] (lecteur/écrivain de métadonnées .NET qui peut également lire des assemblies obfusqués)
[DnSpyEx - optionnel]

Télécharger l’outil