web-dev-qa-db-de.com

Gibt es einen nativen DLL export functions viewer?

Gibt es einen freien nativen Windows DLL export functions viewer, der den Funktionsnamen und eine Liste ihrer Parameter anzeigt?

86
Alon Gubkin

sie können Dependency Walker verwenden, um den Funktionsnamen anzuzeigen. Sie können die Parameter der Funktion nur sehen, wenn sie dekoriert sind. Lesen Sie Folgendes aus den FAQ:

Wie kann ich die Parameter und Rückgabetypen einer Funktion anzeigen? Diese Informationen gelten für die meisten Funktionen ist einfach nicht im Modul vorhanden. Das Dateiformat des Windows-Moduls enthält nur eine einzige Textzeichenfolge, um jede Funktion zu identifizieren. Es gibt keine strukturierte Möglichkeit, die Anzahl der Parameter, die Parametertypen oder den Rückgabetyp aufzulisten. Einige Sprachen führen jedoch eine Funktion namens "Dekoration" oder "Zerfleischen" aus, bei der Informationen in die Textzeichenfolge codiert werden. Beispielsweise kann eine Funktion wie int Foo (int, int), die mit einfacher Dekoration codiert ist, als _Foo @ 8 exportiert werden. Die 8 bezieht sich auf die Anzahl der von den Parametern verwendeten Bytes. Wenn C++ - Dekoration verwendet wird, wird die Funktion als? Foo @@ YGHHH @ Z exportiert, was direkt auf den ursprünglichen Prototyp der Funktion zurückdecodiert werden kann: int Foo (int, int). Dependency Walker unterstützt C++ - Undecoration mit dem Befehl Undecorate C++ Functions.

68
Moshe Levi

dumpbin über die Visual Studio-Eingabeaufforderung:

dumpbin /exports csp.dll

Ausgabebeispiel:

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 von NirSoft kann verwendet werden, um exportierte Funktionen in einer DLL anzuzeigen.

Dieses Dienstprogramm zeigt die Liste aller exportierten Funktionen und ihre virtuellen Speicheradressen für die angegebenen DLL Dateien an. Sie können die Speicheradresse der gewünschten Funktion einfach kopieren, in Ihren Debugger einfügen und eine neue festlegen Haltepunkt für diese Speicheradresse Wenn diese Funktion aufgerufen wird, stoppt der Debugger am Anfang dieser Funktion.

enter image description here

18
Magnus Lindhe

Wenn Sie nicht über den Quellcode und die API-Dokumentation verfügen, der Maschinencode jedoch vorhanden ist, müssen Sie die DLL-Bibliothek mit etwas wie IDA Pro zerlegen. Eine andere Option ist die Verwendung der Testversion von -. PE Explorer .

PE Explorer bietet einen Disassembler. Es gibt nur eine Möglichkeit, die Parameter herauszufinden: Führen Sie den Disassembler aus und lesen Sie die Disassemblierungsausgabe. Leider kann diese Aufgabe des Reverse Engineering der Schnittstelle nicht automatisiert werden.

PE Explorer wird mit Beschreibungen für 39 verschiedene Bibliotheken geliefert, darunter die wichtigsten Windows®-Betriebssystembibliotheken (z. B. KERNEL32, GDI32, USER32, Shell32, WSOCK32), wichtige Grafikbibliotheken (DDRAW, OPENGL32) und mehr.

alt text
(Quelle: heaventools.com )

8
RRUZ

Nicht sicher über seine Parameterliste, aber nach TotalCommander-Plugin ist sehr nützlich.

2
Restuta