Domanda

In breve: voglio monitorare le chiamate selezionate da un'applicazione a una DLL.

Abbiamo una vecchia applicazione VB6 per la quale abbiamo perso il codice sorgente (all'epoca la società non utilizzava il controllo del codice sorgente). Questa applicazione utilizza una DLL di terze parti.

Voglio usare questa DLL in una nuova applicazione C ++. Sfortunatamente l'API DLL è solo parzialmente documentata, quindi non so come chiamare alcune funzioni. Ho la firma delle funzioni.

Poiché l'applicazione VB6 utilizza questa DLL, voglio vedere come chiama diverse funzioni. Finora ho provato o guardato -

  1. APIHijack - mi richiede di scrivere il codice C ++ per ogni funzione. Dal momento che ho solo bisogno di registrare i valori, sembra un eccessivo.
  2. EasyHook - uguale a 1, ma consente di scrivere nel codice in linguaggio .NET.
  3. OllyDbg con uHooker - Devo ancora scrivere codice per ogni funzione, questa volta in Python. Inoltre, devo fare molte conversioni in Python usando il modulo struct , poiché la maggior parte delle funzioni passa valori usando i puntatori.

Poiché ho solo bisogno di registrare i parametri delle funzioni, voglio una soluzione semplice. Esiste uno strumento automatizzato, per il quale potrei dire quali funzioni monitorare e la loro firma e quindi ottenere un file di registro dettagliato?

È stato utile?

Soluzione 2

Qualche altra ricerca su Google ha trovato quello che cercavo: WinAPIOverride32 . Permette di scrivere file di testo come:

CustomApi.dll|void NameOfFunction(long param1, double& param2);

In seguito, questi file possono essere utilizzati all'interno del programma per registrare tutte le chiamate su NameOfFunction . Ora devo solo capire come registrare gli array e strutturare i parametri.

Altri suggerimenti

A "statico" soluzione (nel senso che può catturare una traccia dello stack su richiesta) sarebbe Process Monitor .

Process Monitor

Una soluzione più dinamica sarebbe ApiMonitor , ma potrebbe essere troppo vecchia per essere compatibile con applicazioni da monitorare. Vale la pena provare comunque.

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

Componente aggiuntivo di Visual Studio Flusso di runtime qui :

  

Flusso di runtime in tempo reale controlla e registra le chiamate di funzione e   parametri di funzione nell'applicazione .NET in esecuzione e mostra uno stack   traccia albero. Nessuna strumentazione o codice sorgente richiesto per il monitoraggio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top