【Visual Studio】 dumpbin アプリケーションを使ってDLLファイルに含まれる関数を調べる

DEVELOP, VisualStudio

稀にですが、バイナリファイルの依存関係を調べたいことがあります。知っておくと、いざという時に役に立つかもしれません。

目次

ツールについて

Visual Studio 2019 Community を Visual Studio Installer でインストールする際に追加インストールできる dumpbin アプリケーションを利用します。

手順:dumpbin アプリケーションのインストール

Visual Studio Installer を起動し、[C++ によるデスクトップ開発]をチェックしインストールします。

これでdumpbin ファイルがインストールされます。

使用方法 (Visual Studio経由で使う)

1.Visual Studio を起動し、[ツール] > [コマンドライン] > [開発者用 Power Shell]を選択します。

Windows Power Shell が起動出来たら、以下コマンドを実行します。

dumpbin /exports [dllファイルパス] > output.txt

結果

試しに C:\Windows\System32\amsiproxy.dll に対してDump 出力してみます。

Microsoft (R) COFF/PE Dumper Version 14.24.28314.0
Copyright (C) Microsoft Corporation.  All rights reserved.
Dump of file C:\Windows\System32\amsiproxy.dll
File Type: DLL
  Section contains the following exports for amsiproxy.dll
    00000000 characteristics
    918B159C time date stamp
        0.00 version
           1 ordinal base
           4 number of functions
           4 number of names
    ordinal hint RVA      name
          1    0 00001080 DllCanUnloadNow
          2    1 00001040 DllGetClassObject
          3    2 000010E0 DllRegisterServer
          4    3 00001110 DllUnregisterServer
  Summary
        1000 .data
        1000 .pdata
        2000 .rdata
        1000 .reloc
        1000 .rsrc
        1000 .text

出力結果を見るとDllCanUnloadNow、DllGetClassObject、DllRegisterServer、DllUnregisterServer の4つの関数を含んでいることが分かりました。

Posted by kazupon