Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Get-PDInvokeImports — PowerShellモジュールで、.NETアセンブリ内のP/Invoke、Dynamic P/Invoke、D/Invokeを自動検出します。アンマネージAPI呼び出し、MDToken、エクスポート場所をDnSpyブックマークに出力し、マルウェア解析に役立てます。 | Kitploit
ツール/GitHubGitHub/dump-guy/get-pdinvokeimports
静的分析リバースエンジニアリングマルウェア分析バイナリ解析
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

PowerShellモジュールで、.NETアセンブリ内のP/Invoke、Dynamic P/Invoke、D/Invokeを自動検出します。アンマネージAPI呼び出し、MDToken、エクスポート場所をDnSpyブックマークに出力し、マルウェア解析に役立てます。

リポジトリを見る
5464年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Get-PDInvokeImports

説明:

Get-PDInvokeImportsは、アセンブリ内でのP/Invoke、Dynamic P/Invoke、D/Invokeの使用を自動検出できるツール(PowerShellモジュール)です。それらが参照されているすべての場所を表示し、すべてをDnSpy_Bookmarks.xmlにエクスポートします。

このPSモジュールは、.NETアセンブリのリバースエンジニアリング中に、アセンブリで使用されているアンマネージAPI関数への呼び出しを迅速に明らかにするのに役立ちます。マルウェアアセンブリにはジャンクコードが大量に含まれ、メイン機能が直接WIN APIまたはNTAPI呼び出しによって実装されている場合があります。
Get-PDInvokeImportsを使用すると、アセンブリで使用されているP/Invoke、Dynamic P/Invoke、D/Invokeをすばやく把握できます。使用されている関数、MDToken、宣言場所、コード内で使用されているすべての場所が表示されます。
検出されたP/Invoke、Dynamic P/Invoke、D/Invokeがコードから参照されているすべての場所をDnSpy Bookmarks.xmlにエクスポートできます。

例:ジャンクコードとCF難読化でいっぱいの1MBのアセンブリを想像してください。メイン機能はアンマネージWinAPI\NTAPI呼び出しを介して実現されています。

このPSモジュールはPowerShellで記述されており、Windows PowerShell(.NET Framework)およびPowerShell Core(.NET、.NET Coreベース)と完全に互換性があります。dnlibを使用してアセンブリを解析し、.NETリフレクションを使用してdnlibをロードします。dnlibは.NET Frameworkおよび.NET Standardで利用可能です。つまり、このPSモジュールはWindowsおよびLinux OSでdnlibに依存して使用できます。

P/Invoke、Dynamic P/Invoke、D/Invokeとは?

簡単に言うと、これらはマネージコードからアンマネージコードを呼び出すための可能な実装方法です(簡略化すると、.NETから直接WinAPI/NTAPIを呼び出すために使用できます)。
実装が容易なものもあれば、AV検出やフッキングを回避するのに適したものもあります。

詳細情報:

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

インストール:

[Releases]には、指定されたプラットフォーム用にコンパイル済みのdnlibとスクリプトGet-PDInvokeImports.ps1が含まれています。
Windows – [release]をダウンロード(Windows PowerShellまたはPowerShell Coreから使用)
Linux – [release]をダウンロード(PowerShell Coreから使用)

必要に応じて、dnlibを自分でコンパイルすることもできます(Windows – .NET Framework、Linux – netstandard)

使用方法:

動画: [YouTube]

[PARAMETER] -PathToAssembly

必須パラメーター。
スキャンするアセンブリのパスを指定します。

[PARAMETER] -PathToDnlib

オプションパラメーター。
dnlib.dllへのシステムパス。

PowerShellがdnlib.dllの場所から実行されている場合、このパラメーターは無視できます。それ以外の場合は指定してください。

[PARAMETER] -ExportDnSpyBookmarks

オプションパラメーター。
検出されたすべてのP/Invoke、Dynamic P/Invoke、D/Invokeの場所をコードからDnSpy Bookmarks XMLファイル(DnSpy_Bookmarks.xml)にエクスポートするために使用します。

DnSpyの「Analyze-UsedBy」と似ています(コード全体でPInvokeとDInvokeがどこで使用されているかを概要表示)。

そのため、DnSpyのブックマークウィンドウからインポートできます(DnSpy → 表示 → ブックマーク → ブックマークウィンドウ → ファイルからブックマークをインポート → DnSpy_Bookmarks.xmlを選択)。

[例]

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の例:

Windowsの例:

備考

検出は一般的な難読化を打ち破るのに十分な堅牢性を持つはずです。
SmartAssembly、ConfuserExなどの一般的な難読化ツールでテスト済みです。

検出の内部動作:P/Invokeは常に存在する必要があるPinvokeImpl属性を介して検出されます。
D/Invokeは「UnmanagedFunctionPointerAttribute」属性と「CallingConvention」を介して検出されます(特定の条件下で回避される可能性がありますが、それはRedTeamの想像力に任せます(いずれにせよ打ち負かします)。
Dynamic P/Invokeの検出は、DefinePInvokeMethod()を参照するmethodXと、methodXを参照するすべてのmethodYを見つけることに基づいています。

依存関係:

[dnlib](.NETメタデータリーダー/ライター。難読化されたアセンブリも読み取れます)
[DnSpyEx - オプション]

ツールをダウンロード