![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
![]()
Всем привет. Собираюсь разработать программное средство защиты данных. Программа должна шифровать файлы в определенной директории на диске, при любой попытке доступа, драйвер-фильтр должен проверять какая программма обращается к файлам, если она доверенная, то файл должен быть расшифрован и предоставлен программе, в противном случае файл предоставляется в зашифрованном виде. Для реализации собираюсь использовать драйвер-минифильтр фс, и отлавливать IRP_MJ_READ. Но вопрос в том, каким образом расшифровать файл, и передать его доверенной программе? Расшифровать временно на диск не будет безопасным и правильным решением.
Можно ли его как то расшифровать на лету и передать? Сколько IRP мне придется обработать при единократном обращении к одному файлу? 1? или больше?
Хакинг - не преступление, а способ выживания.
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Зависит от драйвера. Пока он не сообщит, что данное IRP обработано новое посылаться не будет, однако если обрабатывать их по одному производительность будет ниже плинтуса.
Кстати, вы в курсе, что один и тот же файл может быть в разных директориях? Зачем вся эта бодяга - NTFS может шифровать файлы "из коробки"? |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
![]()
Бадяга вся ради изучения. То что файл может быть в разных папках знаю, этот случай игнорируем. Насчет обработки "по одному", есть какие то варианты обработки группой?
И да, на вопрос Вы к сожалению не ответили.... если одна какая то программа, решит прочитать 1 файл, то сколько IRP запросов получит мой драйвер?
Хакинг - не преступление, а способ выживания.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Получит один, когда скажет "готов получить еще" получит еще один, конечно если есть. Сигнал "получить еще" можно посылать не завершив обработку пакета - это все на усмотрение драйвера.
Грубо говоря, количество IRP запросов будет равно количеству ReadFile вызовов. Программа может читать файл целиком а может читать кусками, тут никаких правил нет, будьте готовы ко всему. Ставьте пакеты в очередь и требуйте следующий пакет. По мере завершения операции сигнализируйте, что обработка IRP завершена - их не обязательно завершать в порядке поступления. Вот чтиво, для начала: https://support.microsoft.com/en-us/kb/320275 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
разработка драйвера 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 |