Мониторинг обращений приложений к DLL
-
10-07-2019 - |
Вопрос
Короче говоря: я хочу отслеживать выбранные вызовы из приложения в DLL.
У нас есть старое приложение VB6, для которого мы потеряли исходный код (тогда компания не использовала контроль исходного кода ..). Это приложение использует стороннюю DLL.
Я хочу использовать эту DLL в новом приложении C ++. К сожалению, API-интерфейс DLL документирован лишь частично, поэтому я не знаю, как вызывать некоторые функции. У меня есть подпись функций.
Поскольку приложение VB6 использует эту DLL, я хочу посмотреть, как она вызывает несколько функций. До сих пор я пробовал или смотрел на -
<Ол> struct
, так как большинство функций передают значения с помощью указателей. Поскольку мне нужно только регистрировать параметры функций, я хочу простое решение. Есть ли какой-нибудь автоматизированный инструмент, для которого я мог бы указать, какие функции нужно отслеживать, и их подпись, а затем получить подробный файл журнала?
Решение 2
Еще один поиск в Google нашел то, что я искал: WinAPIOverride32 . Это позволяет писать текстовые файлы, такие как:
CustomApi.dll|void NameOfFunction(long param1, double& param2);
Позже эти файлы можно использовать внутри программы для регистрации всех вызовов NameOfFunction
. Теперь мне просто нужно выяснить, как регистрировать массивы и параметры структур.
Другие советы
A "статический" решение (в том смысле, что оно может захватывать трассировку стека по требованию) было бы Монитор процессов .
Более динамичным решением будет ApiMonitor , но оно может быть слишком старым, чтобы быть совместимым с приложения для мониторинга. Хотя стоит попробовать.
Надстройка Visual Studio Поток выполнения здесь а>:
Runtime Flow в реальном времени отслеживает и регистрирует вызовы функций и Параметры функции в вашем работающем приложении .NET и показывает стек трассировать дерево. Для мониторинга не требуется инструментарий или исходный код.