Как регистрировать вызовы программы DeviceIoControl в Windows - PullRequest
3 голосов
/ 30 марта 2012

Мне нужно перехватить системные вызовы DeviceIoControl () приложения. В linux strace может использоваться для анализа всех вызовов ioctl. Есть ли подобная функциональность в Windows?

Веб-сайт MSDN рекомендует программу «Process Monitor» для анализа действий исполняемых файлов в реальном времени. Однако «Монитор процессов» не показывает ничего о вызовах DeviceIoControl.

Ответы [ 4 ]

3 голосов
/ 07 июня 2012

Для захвата функции DeviceIoControl () вы можете использовать хук API. Моя компания предоставляет Deviare , движок крюка с интерфейсом высокого уровня. Вам не нужно много знать о подключении, его можно использовать свободно (просто отобразите диалоговое окно с незарегистрированной версией). Включает консоль с исходным кодом.

3 голосов
/ 30 марта 2012

Вы пробовали OSR IRPTracker ?

IrpTracker позволяет вам отслеживать все пакеты запросов ввода / вывода (IRP) в системе без использования каких-либо драйверов фильтра и без ссылок на какие-либо объекты устройства, оставляя систему PnP полностью без помех. Помимо возможности видеть путь, по которому IRP снимает стек драйверов и его окончательное состояние завершения, доступно подробное представление, которое позволяет вам видеть все содержимое статической части IRP и интерпретированное представление текущего и предыдущего складывать места.

1 голос
/ 21 октября 2015

Недавно обнаружен API-монитор Rohitab Он не обновлялся в течение 2 лет, но работает на моей Win7 x64.Он имеет очень хорошие возможности фильтрации API.

0 голосов
/ 07 апреля 2014

Средство Dr. Memory (http://drmemory.org)) поставляется с инструментом отслеживания системных вызовов drstrace, который перечисляет все системные вызовы, сделанные целевым приложением, включая NtDeviceIoControlFile, вместе с их аргументами: http://drmemory.org/strace_for_windows.html

...