Интересуют следующий вопрос (чую, что связан с IRP-пакетами): Допустим, программа Х использует свой драйвер для определенных целей, которых несколько. В зависимости от того, что ей нужно она передает драйверу определенную команду и он ей возвращает определенный ответ. Например нужно с уровня нулевого кольца считать какие файлы лежат в определенной директории (это как одна из функций антируткита). Или с уровня ядра сделать еще что-то... Вопрос к этому пункту такой: как можно "подсмотреть" какие команды передает программа своему драйверу? Т.е в идеале нужна какая-то утилита типа RegMon от Марка, но только что бы мониторила обращения к драйверу определенных программ. Также насколько я понимаю обращения происходят через DeviceIoControl(...). Нуждаюсь в любой помощи: можно ссылки на статьи по данной теме по чистой теории, можно исходники на С++ или асме. Другие языки не желательны, хотя можно и другие если работа там реализована через WinApi.
Подсмотреть не всегда получиться просто. Например, если используется минифильтр для общения между юзермодом и драйвером.
Four-F глава помоему 4 или 5, там есть пример драйвера и проги которая общается по средством DeviceIoControl, отправляю определенные IOCTL'и, может быть будет полезно посмотреть их исходный код, также сами статьи изучить