Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2016, 19:50   #1
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию Разработка драйвера минифильтра .

Всем привет. Собираюсь разработать программное средство защиты данных. Программа должна шифровать файлы в определенной директории на диске, при любой попытке доступа, драйвер-фильтр должен проверять какая программма обращается к файлам, если она доверенная, то файл должен быть расшифрован и предоставлен программе, в противном случае файл предоставляется в зашифрованном виде. Для реализации собираюсь использовать драйвер-минифильтр фс, и отлавливать IRP_MJ_READ. Но вопрос в том, каким образом расшифровать файл, и передать его доверенной программе? Расшифровать временно на диск не будет безопасным и правильным решением.
Можно ли его как то расшифровать на лету и передать?
Сколько IRP мне придется обработать при единократном обращении к одному файлу? 1? или больше?
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 14.04.2016, 22:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Зависит от драйвера. Пока он не сообщит, что данное IRP обработано новое посылаться не будет, однако если обрабатывать их по одному производительность будет ниже плинтуса.

Кстати, вы в курсе, что один и тот же файл может быть в разных директориях?

Зачем вся эта бодяга - NTFS может шифровать файлы "из коробки"?
waleri вне форума Ответить с цитированием
Старый 15.04.2016, 00:01   #3
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Бадяга вся ради изучения. То что файл может быть в разных папках знаю, этот случай игнорируем. Насчет обработки "по одному", есть какие то варианты обработки группой?

И да, на вопрос Вы к сожалению не ответили.... если одна какая то программа, решит прочитать 1 файл, то сколько IRP запросов получит мой драйвер?
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 15.04.2016, 09:27   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Получит один, когда скажет "готов получить еще" получит еще один, конечно если есть. Сигнал "получить еще" можно посылать не завершив обработку пакета - это все на усмотрение драйвера.

Грубо говоря, количество IRP запросов будет равно количеству ReadFile вызовов.
Программа может читать файл целиком а может читать кусками, тут никаких правил нет, будьте готовы ко всему.

Ставьте пакеты в очередь и требуйте следующий пакет. По мере завершения операции сигнализируйте, что обработка IRP завершена - их не обязательно завершать в порядке поступления.

Вот чтиво, для начала:
https://support.microsoft.com/en-us/kb/320275
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разработка драйвера Opos IgorZap Фриланс 1 12.12.2015 19:29
Разработка драйвера блочного стройства для ОС Windows, Оплата Arcan91 Фриланс 0 03.12.2013 09:21
Разработка драйвера Casisdead Фриланс 3 14.05.2013 17:26
разработка драйвера ODBC chertovich БД в Delphi 1 08.08.2011 23:24