Драйвер фильтра реестра для XP

#visual-c #filter #device-driver #wdk

#visual-c #Фильтр #драйвер устройства #wdk

Вопрос:

Я хочу создать драйвер фильтра реестра специально для Windows XP. Я знаю, что в официальном WinDDK есть пример, но он работает только в Windows 7.

Возможно ли вообще разработать драйвер фильтра реестра для Windows xp? Любой код / указатели будут высоко оценены.

Ответ №1:

Вы также можете подключить функции registry API с помощью Microsoft Detours (или аналогичного пакета). Исправить это непросто (все еще нахожу ошибки), но если вы готовы к написанию драйверов, то это не отличается сложностью. Просто меньше синих экранов. Посмотрите на подключение функций Nt или Zw в ntdll.

Ответ №2:

Нет, это невозможно. Для Windows XP вам нужно взломать таблицу kernel API. Это не рекомендуется, но для Windows XP это единственный вариант. Именно так раньше работала программа Sysinternals RegMon.

Ответ №3:

Да, это возможно, хотя я бы не рекомендовал это.

Во-первых, вы должны подключить SSDT. Пожалуйста, обратите внимание, что перехват SSDT не поддерживается в 64-разрядных версиях XP (Защита от исправлений), вы должны понимать, что вы делаете (перехват BSOD), не переносим, и ваше программное обеспечение может быть помечено как вредоносное.

Во-вторых, вам нужно выполнить обратное проектирование блоков управления ключами. Когда два разных приложения открывают один и тот же ключ, они получают два разных дескриптора, но их KCB уникален для обоих потоков. KCB — непрозрачная структура, поэтому WinDbg здесь ваш друг.