#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 здесь ваш друг.