Здрасти.
Наконец собрал рабочий билд. Этот движок перехватывает запросы в WSP* стабах к AFD(точнее перехватывает вообще все обращения к этому девайсу).
Код не большой, но довольно сложный. Это захват хипа, полноценная стековая(S-) маршрутизация, быстрая трассировка и диспатч референсов на инвалидных описателях. Единственный недостаток - я не добавил локальный сех(это не существенно). Откатано только на XP, так как другой оси нет в данный момент. Инициализация занимает несколько секунд, это изза диспетчеризации огромного количества отладочных сообщений, их можно отключить(в TEB есть для этого флажёк).
Конечная функция - стаб BadrefDispatchStub(), этот код вызывается из всех Zw* стабов, в которых обращение происходит к AFD(ZwDeviceIoControlFile etc.).
Отладка весьма сложна, для этого введено множество символов. В общем код написан довольно прозрачно.
Наконец собрал рабочий билд. Этот движок перехватывает запросы в WSP* стабах к AFD(точнее перехватывает вообще все обращения к этому девайсу).
Код не большой, но довольно сложный. Это захват хипа, полноценная стековая(S-) маршрутизация, быстрая трассировка и диспатч референсов на инвалидных описателях. Единственный недостаток - я не добавил локальный сех(это не существенно). Откатано только на XP, так как другой оси нет в данный момент. Инициализация занимает несколько секунд, это изза диспетчеризации огромного количества отладочных сообщений, их можно отключить(в TEB есть для этого флажёк).
Конечная функция - стаб BadrefDispatchStub(), этот код вызывается из всех Zw* стабов, в которых обращение происходит к AFD(ZwDeviceIoControlFile etc.).
Отладка весьма сложна, для этого введено множество символов. В общем код написан довольно прозрачно.