2009-10-10 13 views

Respuesta

56

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

¿Cómo veo el parámetro y los tipos de 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 cadena de texto única para identificar cada función. No hay una forma estructurada de enumerar el número de parámetros, los tipos de parámetros o el tipo de devolución. Sin embargo, algunos lenguajes hacen algo llamado función "decoración" o "mangle", 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 a la cantidad 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 de nuevo al prototipo original de la función: int Foo (int, int). Dependency Walker admite sin decoración C++ mediante el uso del comando Undecorate C++ Functions.

+0

Gracias, pero cuando intento abrir cualquier DLL, aparece en la ventana de registro: Error: Al menos un módulo tiene una importación no resuelta debido a una función de exportación faltada en un módulo implícitamente dependiente. Error: Se encontraron módulos con diferentes tipos de CPU. Advertencia: no se encontró al menos un módulo de dependencia de carga de demora. Advertencia: Al menos un módulo tiene una importación no resuelta debido a una función de exportación faltante en un módulo dependiente de la carga de retraso. –

+0

Estoy usando Windows 7 x64 Final. –

+3

@Alon: Bueno, su aplicación está en mal estado :) el primer error indica que algunos de sus dll están compilados para sistemas de 32 bits y algunos para 64 bits. solo puede cargar dll con la misma arquitectura de CPU en el mismo proceso. puede vivir con los otros dos errores siempre que la aplicación los maneje. –

2

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

+8

No estoy seguro que la gente quiere descargar un binario sin saber exactamente lo que es. La página de complementos está aquí: http://physio-a.univ-tours.fr/tcplugins/ – RedGlyph

+0

@RedGlyph. Siéntase libre de editar mi respuesta – Restuta

8

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

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

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

alt text http://www.heaventools.com/img/tour2-2.gif

+0

¿Cómo se diferencia esto de Nirsoft DLL Export Viewer? – Pacerier

60

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

C: \ Users \ Andrew \ src2011 \ Cryptography \ cspsdk> dumpbin/exportaciones csp.dll

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

volcado de csp.dll archivo

Tipo

del archivo: DLL

sección contiene los siguientes exportaciones de 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 
+6

Tenga cuidado de no ejecutar 'dumpbin/export' accidentalmente (falta 's' al final), es un comando completamente diferente. –

+1

Me olvido de Dumpbin y tengo que buscar esta respuesta cada seis meses más o menos. ¡Gracias! – tofutim

17

DLL Export Viewer por NirSoft puede ser utilizado para mostrar las funciones exportadas en una DLL.

This utility displays the list of all exported functions and their virtual memory addresses for the specified DLL files. You can easily copy the memory address of the desired function, paste it into your debugger, and set a breakpoint for this memory address. When this function is called, the debugger will stop in the beginning of this function.

enter image description here

+1

La aplicación de Nirsoft no muestra funciones sin nombre :-( – TCS

+0

@MagnusLindhe Utilizo esta aplicación copie la dirección y la establezco como un punto de interrupción, pero cuando la depuro con Visual Studio (modo de depuración, Win32) no se detiene cuando se llama a la función. Usé tanto la dirección como la dirección relativa para probar esto. No funcionan. ¿Qué estoy haciendo mal? ¿Quizás lo sepa? No puedo encontrar más información al respecto –

+0

El botón buscar DLL se ha completado roto para mí, también no muestra ninguna función en dlls en absoluto. Estoy usando Windows 10 (64bit) – Owl

Cuestiones relacionadas