Связь программы с драйверами ввода/вывода
Возникла задача:
проследить от каких драйверов (интересуют драйвера ввода/вывода) зависит программа. Какие их функции (если можно так выразиться) вызываются (косвенно, не напрямую) программой.
Возможно ли это отследить программно и подебажить (программно) вызовы этих функций.
Пните, так сказать, в нужном направлении.
З.Ы. сильно не критикуйте за возможную косноязычность, никогда до этого не работал с драйверами.
Ось какая?
Цитата: __AleXX__
Возможно ли это отследить программно и подебажить (программно) вызовы этих функций.
Пните, так сказать, в нужном направлении.
в Windows можно перехватывать CreateFile и DeviceIoControl. по вызовам CreateFile можно узнать какие драйвера (или устройства) используются, по перехвату и изменению параметром DeviceIoControl можно отлаживать обрашщения к драйверам. Перехватывать лучше всего не CreateFile и DeviceIoControl, а из аналоги из ntdll.dll
Цитата:
Перехватывать лучше всего не CreateFile и DeviceIoControl, а из аналоги из ntdll.dll
А не подскажешь эти самые аналоги? Я нашел NtCreateFile, NtDeviceIOControlFile.
Для Windows попробуйте PE_тузлу -> PE.Explorer называется. Она отлично справляется с поставленной задачей. Показывает и язык на кот. была написана прога (допустим если Delphi, то покажет и версию и среду в которой все собиралось), и все системные модули, к которым происходит обращение, и динамические библиотеки, и т.д. и т.п. По этим данным думаю можно очень легко вычислить то, что вам нужно.
Цитата: __AleXX__
А не подскажешь эти самые аналоги? Я нашел NtCreateFile, NtDeviceIOControlFile.
да, это вроде они.