Pregunta

En resumen: quiero monitorear las llamadas seleccionadas de una aplicación a una DLL.

Tenemos una vieja 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 ++. Desafortunadamente, la API DLL está solo parcialmente documentada, por lo que no sé cómo llamar a algunas funciones. Tengo la firma de funciones.

Dado que la aplicación VB6 usa esta DLL, quiero ver cómo llama a varias funciones. Hasta ahora lo he intentado o visto -

  1. APIHijack : requiere que escriba código C ++ para cada función. Como solo necesito registrar los valores, parece una exageración.
  2. EasyHook - igual que 1, pero permite escribir en el código en lenguaje .NET.
  3. OllyDbg con uHooker - Todavía tengo que escribir 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. ¿Existe alguna herramienta automatizada para la que pueda decir qué funciones monitorear y su firma, y ??luego obtener un archivo de registro detallado?

¿Fue útil?

Solución 2

Algunas búsquedas más en 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 parámetros de estructuras.

Otros consejos

A " estática " la solución (en el sentido de que puede capturar un seguimiento de la pila a pedido) sería Monitor de proceso .

Process Monitor

Una solución más dinámica sería ApiMonitor , pero puede ser demasiado viejo para ser compatible con el aplicaciones para monitorear. Vale la pena intentarlo.

 http://www.rohitab.com/gallery/api-monitor-2-0/main-window.png

Visual Studio Addin Runtime Flow aquí :

  

Runtime Flow en tiempo real monitorea y registra llamadas de funciones y   parámetros de función en su aplicación .NET en ejecución y muestra una pila   rastro del árbol. No se requiere instrumentación ni código fuente para el monitoreo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top