Вопрос

Я пытаюсь создать способ запретить доступ к определенным разделам жесткого диска / USB-накопителям по соображениям безопасности (защита интеллектуальной собственности).Я думал, что когда Windows пытается получить доступ к "заблокированному диску / usb", попытка прерывается и возвращает что-то вроде "диск недоступен" или что-то в этом роде.Это просто идея, кто-нибудь считает, что это правдоподобно / возможно?Если да, то есть какие-нибудь указания?

C/C++

-Спасибо

Это было полезно?

Решение

Вам нужно будет написать драйвер фильтра для достижения своей цели.Вам нужно будет поместить свой драйвер куда-нибудь в стек драйверов диска и выполнить сбой IRP_MN_START_DEVICE для диска / раздела, который вы хотите заблокировать.

Вам понадобится Комплект драйверов для Windows для написания драйверов.В WDK есть образец драйвера фильтра.Это список рассылки как очень полезный, и если вы поищете в архивах, то найдете много информации о драйверах дискового фильтра.
Хорошая статья о написании драйверов фильтров - это здесь, я думаю, вам нужно будет зарегистрироваться для чтения, но если вы хотите написать драйвер, вы должны быть зарегистрированы на этом сайте.
Соответствующий список книг можно найти здесь здесь.

Другие советы

Проблема с разделами проста.Просто используйте ACL, чтобы предотвратить доступ определенных пользователей.

Что касается доступа к диску, вероятно, где-то в Windows есть какая-то настройка, позволяющая отключить его.В худшем случае вы могли бы попытаться принудительно удалить драйверы (и, следовательно, возможность Windows читать диск / флешку)

Для USB-накопителей вы могли бы зашифровать их.

На работе мы используем Поставщик Pointsec, который позволяет вам получить доступ к диску на любом компьютере, только если у вас есть пароль.

Я уверен, что существуют бесплатные продукты для шифрования

Вероятно, вы могли бы также зашифровать разделы.

(в принципе, я не уверен, зачем вам понадобилось писать какой-то код на c / c ++ для чего-то, что могло бы адекватно управляться другими методами)

Вам нужно зашифровать диски, все остальное позволило бы злоумышленникам просто подключить диск к другому компьютеру и извлечь содержимое.

Вам не следует внедрять шифрование самостоятельно - гораздо лучше полагаться на чужой проверенный код.Я предлагаю TrueCrypt - Истинный шифр для шифрования ваших дисков.

Тогда, возможно, вы захотите вставить в свое приложение перехват для запроса пароля, когда оно захочет получить доступ к зашифрованным данным.Или вы устанавливаете TrueCrypt на компьютер и заставляете пользователя подключать диск, когда он хочет получить доступ к данным, в зависимости от точного способа работы с данными.

Будьте осознанны.Все, что связано с работой над ядром, если у вас еще нет опыта в этой области, требует времени разработки, измеряемого годами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top