¿Hay algún visor nativo de funciones de exportación DLL?


¿Hay algún visor nativo de funciones de exportación DLL de Windows que muestre el nombre de la función y una lista de sus parámetros?

Author: Cristian Ciupitu, 2009-10-10

5 answers

Puede usar Dependency Walker para ver el nombre de la función. puede ver los parámetros de la función solo si está decorada. lea lo siguiente de las preguntas frecuentes:

¿Cómo puedo ver los tipos de parámetro y retorno de una función? Para la mayoría de las funciones, esta información simplemente no está presente en el módulo. El formato de archivo del módulo de Windows solo proporciona una sola cadena de texto para identificar cada función. No hay una forma estructurada de enumerar el número de parámetros, el tipos de parámetros, o el tipo de retorno. Sin embargo, algunos idiomas hacen algo llamado función "decoración" o "mangling", que es el proceso de codificación de información en la cadena de texto. Por ejemplo, una función como int Foo (int, int) codificada con decoración simple podría exportarse como _Foo@8. El 8 se refiere al número de bytes utilizados por los parámetros. Si se utiliza la decoración C++, la función se exportaría como ?Foo@@YGHHH @ Z, que se puede decodificar directamente al original de la función prototipo: int Foo(int, int). Dependency Walker admite la restauración de C++ mediante el comando Undecorate C++ Functions.

 61
Author: Moshe Levi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-10 18:12:21

Dumpbin desde el símbolo del sistema de Visual Studio:

C:\Users\Andrew\src2011\cryptography\cspsdk>dumpbin / exports csp.dll

Microsoft (R) COFF/PE Dumper Versión 10.00.30319.01 Copyright (C) Microsoft Corporation. Todos los derechos reservados.

Volcado del archivo csp.dll

Tipo de archivo: DLL

La sección contiene las siguientes exportaciones para 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

Resumen

    1000 .data
    1000 .rdata
    1000 .reloc
    1000 .rsrc
    1000 .text
 68
Author: AndrewDover,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-09 12:27:38

DLL Export Viewer by NirSoft se puede utilizar para mostrar las funciones exportadas en una DLL.

Esta utilidad muestra la lista de todas las funciones exportadas y sus direcciones de memoria virtual para los archivos DLL especificados. Usted puede fácilmente copie la dirección de memoria de la función deseada, péguela en su depurador, y establecer un punto de interrupción para esta dirección de memoria. Cuando esto se llama a la función, el depurador se detendrá al principio de función.

introduzca la descripción de la imagen aquí

 18
Author: Magnus Lindhe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-30 09:21:51

Si no tiene el código fuente y la documentación de la API, el código de la máquina es todo lo que hay, necesita desensamblar la biblioteca dll usando algo como IDA Pro , otra opción es usar la versión de prueba de PE Explorer.

PE Explorer proporciona un Desensamblador. Solo hay una forma de averiguar los parámetros: ejecutar el desensamblador y leer la salida de desensamblado. Desafortunadamente, esta tarea de ingeniería inversa de la interfaz no se puede automatizar.

PE Explorer viene incluido con descripciones de 39 bibliotecas diferentes, incluidas las bibliotecas del sistema operativo Windows® (p. ej. KERNEL32, GDI32, USER32, SHELL32, WSOCK32), bibliotecas de gráficos clave (DDRAW, OPENGL32) y más.

Texto alternativo http://www.heaventools.com/img/tour2-2.gif

 8
Author: RRUZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-10 18:39:51

No estoy seguro acerca de su lista de parámetros, pero siguiendo TotalCommander plugin es muy útil.

 2
Author: Restuta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-10 18:05:41