falta tag dll
Monitoreo de llamadas de aplicaciones a DLL (3)
Algunas búsquedas más de Google encontraron lo que estaba buscando: WinAPIOverride32 . Permite escribir archivos de texto como:
CustomApi.dll|void NameOfFunction(long param1, double& param2);
Más adelante, estos archivos se pueden usar dentro del programa para registrar todas las llamadas a NameOfFunction
. Ahora solo necesito descubrir cómo registrar matrices y estructurar parámetros.
En resumen: quiero monitorear las llamadas seleccionadas desde una aplicación a una DLL.
Tenemos una antigua aplicación VB6 para la cual perdimos el código fuente (la compañía no estaba usando el control de fuente en ese entonces ...). Esta aplicación utiliza una DLL de terceros.
Quiero usar esta DLL en una nueva aplicación C ++. Lamentablemente, la DLL API solo está parcialmente documentada, por lo que no sé cómo llamar a algunas funciones. Tengo la firma de funciones.
Como la aplicación VB6 usa esta DLL, quiero ver cómo llama a varias funciones. Hasta ahora lo he intentado o visto -
- APIHijack - requiere que escriba código C ++ para cada función. Como solo necesito registrar los valores, parece una exageración.
- EasyHook - igual que 1, pero permite escribir en el código en lenguaje .NET.
- OllyDbg con uHooker - Todavía tengo que escribir el código para cada función, esta vez en Python. Además, tengo que hacer muchas conversiones en Python usando el módulo
struct
, ya que la mayoría de las funciones pasan valores usando punteros.
Como solo necesito registrar parámetros de funciones, quiero una solución simple. ¿Hay alguna herramienta automatizada para la que pueda decir qué funciones supervisar y su firma, y luego obtener un archivo de registro detallado?
Una solución "estática" (en el sentido de que puede capturar un seguimiento de pila a pedido) sería Process Monitor .
Una solución más dinámica sería ApiMonitor , pero puede ser demasiado antigua para ser compatible con las aplicaciones para monitorear. Vale la pena probarlo.
Visual Studio Addin Runtime Flow here :
Runtime Flow en tiempo real supervisa y registra llamadas de función y parámetros de función en su aplicación .NET en ejecución y muestra un árbol de rastreo de pila. No se requiere instrumentación o código fuente para el monitoreo.