Monitoring-Anwendung ruft DLL
-
10-07-2019 - |
Frage
. Kurz: ich aus einer Anwendung ausgewählten Anrufe überwachen möchten auf eine DLL
Wir haben eine alte VB6-Anwendung, für die wir den Quellcode verloren (das Unternehmen nicht Quellcodeverwaltung verwendet wurde damals ..). Diese Anwendung verwendet einen 3rd-Party-DLL.
Ich mag diese DLL in einer neuen C ++ Anwendung verwenden. Leider ist nur die DLL API teilweise dokumentiert, damit ich weiß nicht, wie einige Funktionen aufrufen. Ich die Funktionen Signatur haben.
Da die VB6-Anwendung diese DLL verwendet, möchte ich sehen, wie es mehrere Funktionen aufruft. Bisher habe ich versucht, oder sah -
- APIHijack - erfordert mir C ++ Code für jede Funktion zu schreiben. Da ich nur die Werte protokollieren müssen, scheint es wie ein Overkill.
- EasyHook -. Wie 1, aber erlaubt es in dem Code in .NET-Sprache zu schreiben
- OllyDbg mit uHooker - ich habe immer noch Code schreiben für jede Funktion, diesmal in Python. Außerdem habe ich viele Konvertierungen in Python mit dem
struct
Modul zu tun, da die meisten Funktionen Werte mit Zeigern übergeben.
Da ich nur Funktionen Parameter müssen sich einloggen möchte ich eine einfache Lösung. Gibt es ein automatisches Werkzeug, für die ich die Funktionen zu überwachen und ihre Unterschrift, und dann erhalte eine detaillierte Protokolldatei sagen könnte?
Lösung 2
Einige weitere Google-Suche gefunden, was ich suchte: WinAPIOverride32 . Es ermöglicht Schreiben von Text-Dateien wie zum Beispiel:
CustomApi.dll|void NameOfFunction(long param1, double& param2);
Später können diese Dateien innerhalb des Programms verwendet werden, um sich einzuloggen alle NameOfFunction
aufruft. Jetzt brauche ich nur, um herauszufinden, wie Arrays und Structs Parameter loggen sein.
Andere Tipps
Eine "statische" Lösung (im Sinne es einen Stack-Trace auf Nachfrage erfassen kann) sei Process Monitor .
Eine dynamische Lösung wäre ApiMonitor , aber es kann zu alt sein, kompatibel zu sein mit der Programme zu überwachen. Worth obwohl ein Versuch.
Visual Studio Addin Runtime Fluss hier :
Runtime Fluss in Echtzeit überwacht und protokolliert Funktionsaufrufe und Funktionsparameter in Ihrer .NET-Anwendung ausgeführt und zeigt einen Stapel Spuren Baum. Keine Instrumentierung oder Quellcode erforderlich für die Überwachung.