web-dev-qa-db-ja.com

ネイティブDLL=エクスポート関数ビューアーはありますか?

無料のネイティブWindows DLL関数名とそのパラメーターのリストを表示するエクスポート関数ビューアーはありますか?

86
Alon Gubkin

Dependency Walker を使用して関数名を表示できます。関数のパラメーターは、装飾されている場合にのみ表示できます。 FAQから次を読んでください。

関数のパラメーターと戻り値の型を表示するにはどうすればよいですか?ほとんどの機能では、この情報はモジュールに存在しません。 Windowsのモジュールファイル形式は、各機能を識別する単一のテキスト文字列のみを提供します。パラメーターの数、パラメーターの型、または戻り値の型をリストする構造化された方法はありません。ただし、一部の言語は、機能「装飾」または「マングリング」と呼ばれるものを実行します。これは、情報をテキスト文字列にエンコードするプロセスです。たとえば、単純な装飾でエンコードされたint Foo(int、int)などの関数は、_Foo @ 8としてエクスポートされます。 8は、パラメーターで使用されるバイト数を示します。 C++装飾を使用する場合、関数は?Foo @@ YGHHH @ Zとしてエクスポートされ、関数の元のプロトタイプint Foo(int、int)に直接デコードして戻すことができます。 Dependency Walkerは、Undecorate C++ Functionsコマンドを使用してC++の装飾解除をサポートします。

68
Moshe Levi

Visual Studioコマンドプロンプトからのdumpbin

dumpbin /exports csp.dll

出力の例:

Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file csp.dll

File Type: DLL

  Section contains the following exports for CSP.dll

    00000000 characteristics
    3B1D0B77 time date stamp Tue Jun 05 12:40:23 2001
        0.00 version
           1 ordinal base
          25 number of functions
          25 number of names

    ordinal hint RVA      name

          1    0 00001470 CPAcquireContext
          2    1 000014B0 CPCreateHash
          3    2 00001520 CPDecrypt
          4    3 000014B0 CPDeriveKey
          5    4 00001590 CPDestroyHash
          6    5 00001590 CPDestroyKey
          7    6 00001560 CPEncrypt
          8    7 00001520 CPExportKey
          9    8 00001490 CPGenKey
         10    9 000015B0 CPGenRandom
         11    A 000014D0 CPGetHashParam
         12    B 000014D0 CPGetKeyParam
         13    C 00001500 CPGetProvParam
         14    D 000015C0 CPGetUserKey
         15    E 00001580 CPHashData
         16    F 000014F0 CPHashSessionKey
         17   10 00001540 CPImportKey
         18   11 00001590 CPReleaseContext
         19   12 00001580 CPSetHashParam
         20   13 00001580 CPSetKeyParam
         21   14 000014F0 CPSetProvParam
         22   15 00001520 CPSignHash
         23   16 000015A0 CPVerifySignature
         24   17 00001060 DllRegisterServer
         25   18 00001000 DllUnregisterServer

  Summary

        1000 .data
        1000 .rdata
        1000 .reloc
        1000 .rsrc
        1000 .text

84
AndrewDover

DLL Export Viewer by NirSoft を使用して、DLLのエクスポートされた関数を表示できます。

このユーティリティは、指定されたDLL=ファイルのエクスポートされたすべての関数とそれらの仮想メモリアドレスのリストを表示します。このメモリアドレスのブレークポイントこの関数が呼び出されると、デバッガーはこの関数の先頭で停止します。

enter image description here

18
Magnus Lindhe

ソースコードとAPIドキュメントがない場合は、マシンコードがすべて揃っているため、 IDA Pro などの方法でdllライブラリを逆アセンブルする必要があります。別のオプションでは、試用版を使用します- PE Explorer

PE Explorerは逆アセンブラーを提供します。パラメーターを把握する方法は1つしかありません。逆アセンブラーを実行し、逆アセンブリーの出力を読み取ります。残念ながら、インターフェイスをリバースエンジニアリングするこのタスクは自動化できません。

PE Explorerには、コアWindows®オペレーティングシステムライブラリ(KERNEL32、GDI32、USER32、Shell32、WSOCK32など)、キーグラフィックライブラリ(DDRAW、OPENGL32)など、39のさまざまなライブラリの説明がバンドルされています。

alt text
(ソース: heaventools.com

8
RRUZ

パラメーターリストについてはわかりませんが、 TotalCommanderプラグインの後に続く は非常に便利です。

2
Restuta