Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
1

Защита файлов на носителях

24.03.2014, 10:54. Просмотров 733. Ответов 14
Метки нет (Все метки)

Приветствую всех.
Стоит задача (довольно тривиальная на мой взгляд, однако) по защите файлов на носителях. Суть такова: необходимо перехватить обращения (чтение, копирование, удаление) к файлу на носителе с последующим предложением ввести пароль. Если он неправильный, операция прерывается.

Гугл своими результатами не порадовал. Поэтому решил пойти обходным путем: на конкретном носителе получил список всех файлов, в цикле вызвал функцию CreateFile с параметром OPEN_EXISTING. Теперь доступ к файлам заблокирован, далее смысл таков: нужно получить хэндл для вызова CloseHandle того файла, к которому надо обратиться.

Собственно вопрос: есть ли способ получить этот самых хэндл открытого файла, зная его имя. Или может есть другой способ.
Также буду признателен за помощь по поводу перехвата обращений. (знаю, что на форуме уже есть подобные темы, но это все не то)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2014, 10:54
Ответы с готовыми решениями:

Как можно заблокировать изменение файлов на флеш-носителях?
Как можно заблокировать изминение файлов на флеш-носителях??? ЗЫ файловая система NTFS и ос...

Нужен ли сервис заказов скачивания файлов и их получения на физических носителях?
Ситуация следующая: Есть web-сервер на котором можно оставлять ссылки на необходимые для вас...

Защита файлов
Вечер добрый! Предыстория: есть несколько файлов. они заархивированы под паролем(каждый файл в...

Защита файлов
Я хочу в Delphi Borland 7 организовать функцию зашиты фалов к примеру HOSTS ( как например...

14
17 / 17 / 5
Регистрация: 09.03.2013
Сообщений: 65
24.03.2014, 14:22 2
Можно попробовать перехватить CreateFile
http://habrahabr.ru/post/90377/
2
Ушел с форума
Эксперт С++
16299 / 7366 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
24.03.2014, 21:56 3
Цитата Сообщение от gelior Посмотреть сообщение
Суть такова: необходимо перехватить обращения (чтение, копирование, удаление) к файлу на носителе с последующим предложением ввести пароль. Если он неправильный, операция прерывается.
Я бы не сказал, что эта задача тривиальная.
Ну да, можно написать фильтр файловой системы, "подружить" его с
флэшками и все будет работать. Но там по ходу возникнет такое
количество нюансов, что...

Цитата Сообщение от gelior Посмотреть сообщение
на конкретном носителе получил список всех файлов, в цикле вызвал функцию CreateFile с параметром OPEN_EXISTING.
Угу, я уже вижу себе какой-нибудь USB-диск на терабайт, с
которым вы будете пытаться так химичить и который останется
залоченным до перезагрузки...

Цитата Сообщение от gelior Посмотреть сообщение
Собственно вопрос: есть ли способ получить этот самых хэндл открытого файла, зная его имя. Или может есть другой способ.
Можно получить список всех хэндлов процесса, а затем
извлекать информацию по каждому хэндлу. Делается это все
через файловые API (не без помощи Native API).
В Sysinternals есть утилита Handle, которая делает нечто подобное.

Цитата Сообщение от gelior Посмотреть сообщение
Также буду признателен за помощь по поводу перехвата обращений.
Файловый фильтр (драйвер), minifilter или legacy.
Все остальное - баловство.
1
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 09:58  [ТС] 4
Цитата Сообщение от Убежденный Посмотреть сообщение
Я бы не сказал, что эта задача тривиальная.
на самом деле это только один из пунктов задачи, и он, согласен с вами, не простой
Цитата Сообщение от Убежденный Посмотреть сообщение
USB-диск на терабайт
только флешки, не более
Цитата Сообщение от Убежденный Посмотреть сообщение
который останется
залоченным до перезагрузки...
так и должно быть.
за советы спасибо.
0
Ушел с форума
Эксперт С++
16299 / 7366 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
25.03.2014, 11:57 5
Цитата Сообщение от gelior Посмотреть сообщение
только флешки, не более
А Вы попробуйте программно отличить USB-флэшку от USB-диска.
Тоже непростая задачка
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 13:36  [ТС] 6
Цитата Сообщение от Убежденный Посмотреть сообщение
А Вы попробуйте программно отличить USB-флэшку от USB-диска.
уже реализовано
0
Ушел с форума
Эксперт С++
16299 / 7366 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
25.03.2014, 13:48 7
Цитата Сообщение от gelior Посмотреть сообщение
уже реализовано
А можно чуть подробнее ?
А то я видел кучу разных алгоритмов, которые некоторые диски
все равно "видели" как флэшки.
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 15:47  [ТС] 8
Убежденный,
помощь мне оказал этот пост
не стал разбираться как все работает, времени не было. но результат: ни один подключенный диск не был распознан.
1
29 / 29 / 16
Регистрация: 06.03.2013
Сообщений: 159
25.03.2014, 17:35 9
тоже много думал по этому вопросу. ведь тут важно насколько компетентен пользователь. у меня его познания были далеки от продвинутого пользователя и масштаб распространения был не велик, поэтому я просто каждую программу привязывал к флешке по ее серийнику. дешево и сердито.
0
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
25.03.2014, 17:49 10
можно прикупить библиотеку http://madshi.net/ , обзавестись цифровой подписью (для 64битных систем) и перехватить нужные функции.
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
25.03.2014, 18:42 11
Цитата Сообщение от Убежденный Посмотреть сообщение
отличить USB-флэшку от USB-диска
Просто задать условие, типа "если размер < 10 гигов" =)
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 20:49  [ТС] 12
Цитата Сообщение от Izual Посмотреть сообщение
Просто задать условие, типа "если размер < 10 гигов" =)
тоже как вариант
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
26.03.2014, 00:45 13
Цитата Сообщение от gelior Посмотреть сообщение
тоже как вариант
Нет, кстати как раз таки и не вариант. Суть проблемы в том, что если слишком большое кол-во файлов - то будет ошибка, а размер ни о чём не говорит. У меня на флэшке в гиг было ~500 файлов, и это далеко не предел. Ведь картинки или txt файлы занимают сущий пустяк, и даже в гиге может поместиться больше 1000. А это и есть проблема. Значит условие нужно ставить после проверки на кол-во файлов. Т.е. вам по первой моей ссылке идти и немного модифициоровать пример, чтоб считал именно файлы - без папок.
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
26.03.2014, 11:19  [ТС] 14
Цитата Сообщение от Izual Посмотреть сообщение
вам по первой моей ссылке идти
ссылочку можно? а то что-то не нашел
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
26.03.2014, 12:10 15
Цитата Сообщение от gelior Посмотреть сообщение
ссылочку можно?
Точно) Не у вас значит постил. =)
Поиск папок с помощью FindFirstFile\FindNextFile
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2014, 12:10

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

Защита файлов
Приветствую! С каждым годом все больше работ сделанные мною выливаются в сеть в различные...

Защита файлов?
В операционной системе Windows XP есть скрытая папка dllcache объёмом более 400 МБ. Она содержит...

Защита файлов
В общем сделал админку для сайта, проверяю авторизован ли пользователь вот так:...

Защита файлов
Есть программа, которая поверх всех окон, она не дает остальным программам работать, пока пароль не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.