Вопрос

Короче говоря: я хочу отслеживать выбранные вызовы из приложения в DLL.

У нас есть старое приложение VB6, для которого мы потеряли исходный код (тогда компания не использовала контроль исходного кода ..). Это приложение использует стороннюю DLL.

Я хочу использовать эту DLL в новом приложении C ++. К сожалению, API-интерфейс DLL документирован лишь частично, поэтому я не знаю, как вызывать некоторые функции. У меня есть подпись функций.

Поскольку приложение VB6 использует эту DLL, я хочу посмотреть, как она вызывает несколько функций. До сих пор я пробовал или смотрел на -

<Ол>
  • APIHijack - требует от меня написания кода C ++ для каждой функции. Так как мне нужно всего лишь записать значения, это похоже на излишество.
  • EasyHook - аналогично 1, но позволяет писать в коде на языке .NET.
  • OllyDbg с uHooker - мне все еще нужно написать код для каждой функции, на этот раз в Python. Кроме того, мне нужно сделать много преобразований в Python, используя модуль struct , так как большинство функций передают значения с помощью указателей.
  • Поскольку мне нужно только регистрировать параметры функций, я хочу простое решение. Есть ли какой-нибудь автоматизированный инструмент, для которого я мог бы указать, какие функции нужно отслеживать, и их подпись, а затем получить подробный файл журнала?

    Это было полезно?

    Решение 2

    Еще один поиск в Google нашел то, что я искал: WinAPIOverride32 . Это позволяет писать текстовые файлы, такие как:

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

    Позже эти файлы можно использовать внутри программы для регистрации всех вызовов NameOfFunction . Теперь мне просто нужно выяснить, как регистрировать массивы и параметры структур.

    Другие советы

    A "статический" решение (в том смысле, что оно может захватывать трассировку стека по требованию) было бы Монитор процессов .

    Монитор процессов

    Более динамичным решением будет ApiMonitor , но оно может быть слишком старым, чтобы быть совместимым с приложения для мониторинга. Хотя стоит попробовать.

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

    scroll top