Мне необходимо узнать, когда происходит обращение из программы (написанной на VB, исходников нет, есть декомпилированная версия) в DLL (написанная неизвестно на чем, структура видна через Depedency Walker).
В "исходниках" программы я вижу огромнейшее количество функций, но точно знаю, что больше половины из них не используется. Требуется запустить какой-нибудь дебагер, подключить его к прцоессу программы и провести сценарий использования программой, а в дебагере видеть, когда и что вызывается извне.
Реально ли такое? Может ли некий OllyDbg помочь провернуть это или есть специальные программы для таких действий?
то есть, только через "лживую" DLL, которая будет копировать оригинальную DLL по названиям функций, но вместо действий — логировать? А как быть со всякими Get-функциями?
Ну. Формально, они все get-функции, возвращающие значения.
Но именно в данном проекте они делятся на два типа: функции, которые отсылают на железку команды и говорят мне "все норм, я отправил" и функции, которые забирают данные с железки, по типу показателей приборов. Вот второй тип функций важен, ибо некоторые функции первого типа при неправильных возвращаемых значений функций второго типа могут перестать работать.
В той же VS вы можете ставить брекпоинт на адрес памяти.
Чтобы высчитать адрес, надо с вкладки загруженных dll взять базовый адресэтой dll и прибавить смещение функции, которое можно увидеть в Depedency Walker.