web-dev-qa-db-fra.com

Existe-t-il un visualiseur natif DLL)?

Existe-t-il un visualiseur Windows natif gratuit DLL), qui affiche le nom de la fonction et une liste de leurs paramètres?

86
Alon Gubkin

vous pouvez utiliser Dependency Walker pour afficher le nom de la fonction. vous ne pouvez voir les paramètres de la fonction que si elle est décorée. lisez ce qui suit dans la FAQ:

Comment afficher les paramètres et renvoyer les types d'une fonction? Pour la plupart des fonctions, ces informations n'est tout simplement pas présent dans le module. Le format de fichier du module Windows ne fournit qu'une seule chaîne de texte pour identifier chaque fonction. Il n'y a pas de manière structurée de lister le nombre de paramètres, les types de paramètres ou le type de retour. Cependant, certaines langues font quelque chose appelée fonction "décoration" ou "mangling", qui est le processus de codage d'informations dans la chaîne de texte. Par exemple, une fonction telle que int Foo (int, int) codée avec une décoration simple peut être exportée sous le nom _Foo @ 8. Le 8 fait référence au nombre d'octets utilisés par les paramètres. Si vous utilisez une décoration C++, la fonction sera exportée sous la forme? Foo @@ YGHHH @ Z, qui peut être décodée directement dans le prototype d'origine de la fonction: int Foo (int, int). Dependency Walker prend en charge l’indécoration C++ à l’aide de la commande de fonctions Undecorate C++.

68
Moshe Levi

dumpbin à partir de l'invite de commande de Visual Studio:

dumpbin /exports csp.dll

Exemple de sortie:

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 par NirSoft peut être utilisé pour afficher les fonctions exportées dans une DLL.

Cet utilitaire affiche la liste de toutes les fonctions exportées et leurs adresses de mémoire virtuelle pour les fichiers spécifiés DLL. Vous pouvez facilement copier l'adresse de mémoire de la fonction souhaitée, la coller dans votre débogueur et définir un point d'arrêt pour cette adresse mémoire Lorsque cette fonction est appelée, le débogueur s'arrête au début de cette fonction.

enter image description here

18
Magnus Lindhe

Si vous n'avez pas le code source et la documentation de l'API, le code machine est tout ce qu'il y a, vous devez désassembler la bibliothèque dll en utilisant quelque chose comme IDA Pro , une autre option consiste à utiliser la version d'évaluation de - PE Explorer .

PE Explorer fournit un désassembleur. Il existe un seul moyen de déterminer les paramètres: exécutez le désassembleur et lisez la sortie du désassemblage. Malheureusement, cette tâche de reverse engineering de l'interface ne peut pas être automatisée.

PE Explorer est livré avec des descriptions de 39 bibliothèques différentes, y compris les principales bibliothèques du système d’exploitation Windows® (par exemple, KERNEL32, GDI32, USER32, Shell32, WSOCK32), des bibliothèques d’images clés (DDRAW, OPENGL32), etc.

alt text
(source: heaventools.com )

8
RRUZ

Pas sûr de sa liste de paramètres, mais après le plugin TotalCommander est très utile.

2
Restuta