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
Get-PDInvokeImports — PowerShell-Modul zur automatischen Erkennung von P/Invoke, Dynamic P/Invoke und D/Invoke in .NET-Assemblys. Zeigt Aufrufe nicht verwalteter APIs, MDTokens und Exportpositionen in DnSpy-Lesezeichen für die Malware-Analyse an. | Kitploit
Tools/GitHubGitHub/dump-guy/get-pdinvokeimports
Statische AnalyseReverse EngineeringMalware-AnalyseBinäranalyse
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

PowerShell-Modul zur automatischen Erkennung von P/Invoke, Dynamic P/Invoke und D/Invoke in .NET-Assemblys. Zeigt Aufrufe nicht verwalteter APIs, MDTokens und Exportpositionen in DnSpy-Lesezeichen für die Malware-Analyse an.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
546vor 4 JahrenVon Kitploit geprüft

Get-PDInvokeImports

Beschreibung:

Get-PDInvokeImports ist ein Tool (PowerShell-Modul), das in der Lage ist, die Verwendung von P/Invoke, Dynamic P/Invoke und D/Invoke in einer Assembly automatisch zu erkennen. Es zeigt alle Stellen an, von denen sie referenziert werden, und exportiert alle in DnSpy_Bookmarks.xml.

Dieses PS-Modul kann beim Reversen von .NET-Assemblies nützlich und hilfreich sein, um schnell Aufrufe von nicht verwalteten API-Funktionen in der Assembly aufzudecken. Manchmal sind Schadsoftware-Assemblies voller Junk-Code, während die Hauptfunktionalität durch direkte WIN-API- oder NTAPI-Aufrufe implementiert wird.
Get-PDInvokeImports ermöglicht Ihnen einen schnellen Überblick darüber, welche P/Invoke, Dynamic P/Invoke und D/Invoke in der Assembly verwendet werden - Es zeigt Ihnen, welche Funktionen verwendet werden + MDTokens, wo sie deklariert sind, und alle Stellen, an denen sie im Code verwendet werden.
Es ermöglicht den Export aller Stellen, an denen P/Invoke, Dynamic P/Invoke und D/Invoke aus dem Code referenziert werden, in DnSpy Bookmarks.xml.

Beispiel: Stellen Sie sich eine 1 MB große Assembly voller Junk-Code + CF-Verschleierung vor, bei der die Hauptfunktionalität über nicht verwaltete WinAPI\NTAPI-Aufrufe erreicht wird.

Dieses PS-Modul ist in PowerShell geschrieben und vollständig kompatibel mit Windows PowerShell (.NET Framework) und PowerShell Core (basiert auf .NET, .NET Core). Es verwendet dnlib, um Assemblys zu parsen, und .NET-Reflection, um dnlib zu laden. Dnlib ist für .NET Framework und .NET Standard verfügbar - das bedeutet, dass man dieses PS-Modul abhängig von dnlib unter Windows und auch Linux verwenden kann.

Was sind P/Invoke, Dynamic P/Invoke und D/Invoke?

Nun, ganz kurz gesagt, dies sind mögliche Implementierungen, wie man nicht verwalteten Code aus verwaltetem Code aufrufen kann (vereinfacht – können verwendet werden, um direkt WinAPI/NTAPI aus .NET aufzurufen)
Einige sind einfacher zu implementieren, andere eignen sich besser, um AV-Erkennung und Hooking zu umgehen.

Weitere Informationen:

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

Installation:

[Releases] enthält bereits kompiliertes dnlib für die angegebene Plattform + Skript Get-PDInvokeImports.ps1.
Windows – Download [release] (Verwendung mit Windows PowerShell oder PowerShell Core)
Linux – Download [release] (Verwendung mit PowerShell Core)

Bei Bedarf - kompilieren Sie dnlib selbst (Windows – .NET Framework, Linux-netstandard)

Verwendung:

Video: [YouTube]

[PARAMETER] -PathToAssembly

Erforderlicher Parameter.
Gibt den zu überprüfenden Assembly-Pfad an.

[PARAMETER] -PathToDnlib

Optionaler Parameter.
Systempfad zu dnlib.dll.

Wenn PowerShell vom Speicherort von dnlib.dll aus ausgeführt wird, kann dieser Parameter ignoriert werden, andernfalls geben Sie diesen Parameter an.

[PARAMETER] -ExportDnSpyBookmarks

Optionaler Parameter.
Wird verwendet, um alle erkannten P/Invoke-, Dynamic P/Invoke- und D/Invoke-Stellen, die im Code referenziert werden, in eine DnSpy-Lesezeichen-XML-Datei zu exportieren (DnSpy_Bookmarks.xml)

Ähnlich wie DnSpy-Analyze-UsedBy (Nützliche Übersicht, wo alle PInvoke und DInvoke im gesamten Code verwendet werden)

So ist es möglich, es über das Lesezeichenfenster in DnSpy zu importieren (DnSpy -> View -> Bookmarks -> Bookmark Window -> Import bookmarks from file -> DnSpy_Bookmarks.xml auswählen)

[BEISPIELE]

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

Linux-Beispiele:

Windows-Beispiele:

Anmerkungen

Die Erkennung sollte robust genug sein, um einige gängige Verschleierungen zu überwinden..
Getestet mit den gängigsten Obfuskatoren wie SmartAssembly, ConfuserEx usw.

Erkennungsinterna: P/Invoke wird über das PinvokeImpl-Attribut erkannt, das immer vorhanden sein muss.
D/Invoke wird über das Attribut "UnmanagedFunctionPointerAttribute" und "CallingConvention" erkannt (Dies könnte unter bestimmten Umständen umgangen werden – aber ich überlasse es der Fantasie des RedTeams (ich werde dich trotzdem schlagen))
Die Erkennung von Dynamic P/Invoke basiert auf dem Auffinden von methodX, das DefinePInvokeMethod() referenziert, + allen methodY, die methodX referenzieren.

Abhängigkeiten:

[dnlib] (.NET metadata reader/writer which can also read obfuscated assemblies)
[DnSpyEx - optional]

Tool herunterladen