Monitorowanie wywołań aplikacji do biblioteki DLL

W skrócie: chcę monitorować wybrane połączenia z aplikacji do biblioteki DLL.

Mamy starą aplikację VB6, dla której zgubiliśmy kod źródłowy(firma nie używała wtedy kontroli źródła..). Ta aplikacja korzysta z biblioteki DLL 3rd party.

Chcę użyć tego DLL w nowej aplikacji C++. Niestety DLL API jest tylko częściowo udokumentowane, więc nie wiem, jak wywołać niektóre funkcje. Mam podpis funkcji.

Ponieważ aplikacja VB6 używa tego DLL, Chcę zobaczyć, jak to wywołuje kilka funkcji. Do tej pory próbowałem lub patrzyłem na -

  1. APIHijack - wymaga od mnie napisania kodu C++ dla każdej funkcji. Ponieważ muszę tylko rejestrować wartości, wydaje się to przesadą.
  2. EasyHook - tak samo jak 1, ale umożliwia pisanie w kodzie w języku. NET.
  3. OllyDbg with uHooker - wciąż muszę pisać kod dla każdej funkcji, tym razem w Pythonie. Ponadto, muszę zrobić wiele konwersji w Python używa modułu struct, ponieważ większość funkcji przekazuje wartości za pomocą wskaźników.

Ponieważ muszę tylko rejestrować parametry funkcji, chcę prostego rozwiązania. Czy jest jakieś zautomatyzowane narzędzie, dla którego mógłbym określić, które funkcje monitorować i ich podpis, a następnie uzyskać szczegółowy plik dziennika?

Author: kshahar, 2008-11-22

3 answers

Rozwiązaniem " statycznym "(w tym sensie, że może przechwytywać ślad stosu na żądanie) byłoby Monitor procesu.

Monitor Procesu

Bardziej dynamicznym rozwiązaniem byłby ApiMonitor , ale może być zbyt stary, aby był kompatybilny z aplikacjami do monitorowania. Warto spróbować.

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

 25
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 07:44:24

Więcej wyszukiwarek Google znalazło to, czego szukałem: WinAPIOverride32 . Umożliwia zapis plików tekstowych takich jak:

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

Później pliki te mogą być używane wewnątrz programu do logowania wszystkich wywołań do NameOfFunction. Teraz muszę tylko dowiedzieć się, jak rejestrować parametry tablic i struktur.

 11
Author: kshahar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-22 13:39:54

Visual Studio Addin Runtime Flow TUTAJ :

Runtime Flow in real time monitors and logs function calls and parametry funkcji w uruchomionej aplikacji. NET i pokazuje stos trace tree. Do monitorowania nie jest wymagane oprzyrządowanie ani kod źródłowy.

 3
Author: google dev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-27 11:06:43