- DUMPBINを使用すると、DLLまたは実行ファイルの依存関係を一覧表示できます。 Windows.
- /DEPENDENTS オプションは、ファイルに必要なライブラリを表示します。
- 使用を自動化することが可能です PowerShellの 複雑なタスク向け。
- その他の便利なオプションには、/HEADERS、/EXPORTS、/IMPORTS などがあります。
DLL依存関係の分析は、アプリケーションの動作を調査したり、ライブラリの読み込み問題をデバッグしたり、あるいは実行ファイルが正常に動作するために必要な追加コンポーネントを把握したりする際によく行われるタスクです。この文脈において、MicrosoftのDUMPBINツールは、開発、フォレンジック、リバースエンジニアリング、ソフトウェアメンテナンスなど、Windowsでバイナリファイルを扱う人にとって最も有用なリソースの1つとなっています。
ダンプビンは、Microsoft COFF Binary File Dumperとも呼ばれ、コマンドラインツールです。 コマンド Visual Studio開発環境に含まれています。実行ファイル(.exe)、静的ライブラリ(.lib)、動的ライブラリ(.dll)など、COFF(Common Object File Format)形式と互換性のあるあらゆる種類のバイナリファイルを検査できます。最もよく使用される機能の1つは、 DLL または実行可能ファイルの実行に必要な依存関係を表示する.
DLL 依存関係を表示する目的は何ですか?
アプリケーションが特定のDLLが見つからないというエラーをスローした場合、通常最初に疑われるのは、依存関係がシステム上で利用できないのではないかということです。このような場合にDUMPBINを使用すると、 DLL ファイルに必要な他のライブラリを正確に識別するソフトウェアの読み込みや配布のエラーを解決するのに役立ちます。
さらに、アプリケーション全体が再配布されるエンタープライズ環境やプロジェクトでは、必要な DLL を把握することで、それらをインストーラーに正しく含めたり、ターゲット システムに既に存在していることを検証したりすることができます。
DUMPBINへのアクセス方法
このツールを実行する最も簡単な方法は 開く システムのシンボル Visual Studio開発者この環境には、DUMPBIN パスを含む必要な環境変数がすべてすでに設定されています。
たとえば、Visual Studio 2017 の場合、実行可能ファイルは通常、次のようなパスにあります。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86
そのディレクトリに移動したら、次のようにしてツールを呼び出すことができます。
dumpbin.exe /dependents パス\to\file.dll
DUMPBIN /DEPENDENTS コマンド
選択 /扶養家族 表示する責任があります 指定されたファイルが関数をインポートするDLLライブラリのリストつまり、正しく機能するために依存しているもの。
このコマンドは、使用されている特定の関数に関する情報を提供しません(これは/IMPORTSで提供されるものです)が、 存在すべきDLLを特定する 実行が失敗しないようにシステム内で。
実行によって生成される出力の実際の例:
dumpbin /DEPENDENTS MathClient.exe
次のような出力が提供されます。
ファイル MathClient1322.exe のダンプ ファイルタイプ: 実行可能イメージ イメージには次の依存関係があります: MathLibrary.dll MSVCP140D.dll VCRUNTIME140D.dll ucrtbased.dll KERNEL32.dll
これらのファイル名は、MathClient1322.exe 実行可能ファイルに必要な DLL を示します。
その他の便利なダンプビンオプション
DUMPBINツールには以下が含まれます 開発者にとって便利なオプションがいくつかある セキュリティアナリストなど:
- /ヘッダー: ファイルヘッダーを表示します。ファイルの種類、アーキテクチャなどの情報が含まれます。
- /シンボル: 表を一覧表示する シンボルデバッグやリバースエンジニアリングに役立ちます。
- /輸出: ファイルによってエクスポートされた関数を表示します。つまり、他の実行ファイルまたはDLLで使用できる関数です。
- /輸入品: 他の DLL からインポートされる特定の関数を表示します。
PowerShell の実例
DUMPBIN はコマンド プロンプトからだけでなく、PowerShell からも使用できるため、自動化されたスクリプトやワークフローに簡単に統合できます。
典型的な例としては、次のようなDLLの依存関係を調べることが挙げられます。 zipfldr.dll
に位置する C:\Windows\System32
スクリプトは次のようになります。
cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86" .\dumpbin.exe /dependents C:\Windows\System32\zipfldr.dll
このコマンドは、PowerShell から DUMPBIN を問題なく実行し、依存関係を直接表示します。
スクリプトを使用してエクスポートされた関数の名前を取得する
依存関係を超えて、 関数はDLLをエクスポートするこれは、たとえば外部関数を直接呼び出す必要があるアプリケーションを開発する場合に重要になります。
PowerShellからDUMPBINを実行するには、以下のオプションを使用します。 /輸出 そして出力を処理して関数名を取得します。例えば:
$content = .\dumpbin.exe /exports C:\Windows\System32\zipfldr.dll
出力は空行を削除してスクラブされ、文字列は関連するセクションを識別するために処理されます。 ordinal hint RVA name
で終わります Summary
.
この自動化された方法により、目視検査なしで監査、文書化、検証を簡単に実行できます。
DUMPBINの代替品
場合によっては、Visual Studioに頼りたくないこともあるでしょう。 DLL形式の依存関係としての外部代替 recursosvisualbasic.com.ar で提供されているものなど、Visual Basic フォームからファイルの依存関係のリストを取得できます。
この DLL は、アプリケーションが依存するファイルの名前を含む配列を返します。これは次のように呼び出すことができます。
リスト = オブジェクト依存関係
さらに、ダイアログを開いて対象ファイルを選択し、DLLを登録することもできます。 regsvr32
.
分析とデバッグにおけるユースケース
DUMPBINの用途は基本的なソフトウェア開発にとどまりません。アナリストは マルウェアセキュリティ研究者やIT技術者もこれを使用して 不足している依存関係を検出する、ファイル署名を検証したり、疑わしいバイナリをリバース エンジニアリングしたりします。
例えば、次のコマンドを使用します /ALL
依存関係、逆アセンブルされたASM、ディレクティブ、セクションなど、ファイルに関する利用可能なすべての情報を取得できます。ただし、 別々のコマンドを使用する より体系的に情報を分析します。
一般的なやり方としては、 /SECTIONS
実行可能ファイルを分析して内部構造を理解しようとするときに、コード、データ、リソースなどが含まれる部分を特定するのに役立ちます。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。