Как мне «установить» драйвер для Windows? - PullRequest
5 голосов
/ 20 октября 2011

Я планирую написать базовый фильтр реестра Windows на C. Цель фильтра - перехватить все вызовы реестра (с привилегиями пользователя и ядра), чтобы я мог использовать их в своей программе.Я в основном копирую regmon / process monitor Марка Русиновича, но более простой.

Мой вопрос: как только фильтр написан на C, как заставить систему реализовать пользовательское поведение и не реализовывать оригинал?предполагаемое поведение вызовов реестра?

Я использую windows 7

РЕДАКТИРОВАТЬ: я пытаюсь сделать это как часть проекта хобби c ++, который может перехватить все вызовы реестра.

Ответы [ 2 ]

9 голосов
/ 20 октября 2011

Для этого есть специальные функции.См. CmRegisterCallback () , CmRegisterCallbackEx () и Фильтрация вызовов реестра в MSDN.

Что касается простой установки драйвера режима ядра, вы можетеиспользуйте служебный контроллер (sc.exe).Используйте sc create [service name] binPath= [path to your .sys file] type= kernel для создания службы режима ядра и sc start [service name] для ее запуска.Не забудьте sc stop и sc delete, прежде чем вносить изменения в драйвер.

2 голосов
/ 20 октября 2011

Как правило, драйверы считаются службами, поэтому вы можете использовать Диспетчер управления службами Используя вышеупомянутые API-интерфейсы, вы в основном получаете соответствующие записи в реестре в разделе служб.Чтобы узнать, как выполнить эту проверку в этой статье , прокрутите вниз до раздела «Динамическая загрузка и выгрузка драйвера».Кроме того, если вы хотите добиться легкой отладки / разработки и используете VS2k10, я бы посоветовал вам использовать бесплатную VisualDDK Я считаю, что этого должно быть достаточно для начала работы.

...