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

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

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

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

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

Собственно вопрос: есть ли способ получить этот самых хэндл открытого файла, зная его имя. Или может есть другой способ.
Также буду признателен за помощь по поводу перехвата обращений. (знаю, что на форуме уже есть подобные темы, но это все не то)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2014, 10:54
Ответы с готовыми решениями:

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

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

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

14
17 / 17 / 5
Регистрация: 09.03.2013
Сообщений: 65
24.03.2014, 14:22
Можно попробовать перехватить CreateFile
http://habrahabr.ru/post/90377/
2
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
24.03.2014, 21:56
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
Я бы не сказал, что эта задача тривиальная.
на самом деле это только один из пунктов задачи, и он, согласен с вами, не простой
Цитата Сообщение от Убежденный Посмотреть сообщение
USB-диск на терабайт
только флешки, не более
Цитата Сообщение от Убежденный Посмотреть сообщение
который останется
залоченным до перезагрузки...
так и должно быть.
за советы спасибо.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
25.03.2014, 11:57
Цитата Сообщение от gelior Посмотреть сообщение
только флешки, не более
А Вы попробуйте программно отличить USB-флэшку от USB-диска.
Тоже непростая задачка
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 13:36  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
А Вы попробуйте программно отличить USB-флэшку от USB-диска.
уже реализовано
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
25.03.2014, 13:48
Цитата Сообщение от gelior Посмотреть сообщение
уже реализовано
А можно чуть подробнее ?
А то я видел кучу разных алгоритмов, которые некоторые диски
все равно "видели" как флэшки.
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 15:47  [ТС]
Убежденный,
помощь мне оказал этот пост
не стал разбираться как все работает, времени не было. но результат: ни один подключенный диск не был распознан.
1
29 / 29 / 16
Регистрация: 06.03.2013
Сообщений: 159
25.03.2014, 17:35
тоже много думал по этому вопросу. ведь тут важно насколько компетентен пользователь. у меня его познания были далеки от продвинутого пользователя и масштаб распространения был не велик, поэтому я просто каждую программу привязывал к флешке по ее серийнику. дешево и сердито.
0
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
25.03.2014, 17:49
можно прикупить библиотеку http://madshi.net/ , обзавестись цифровой подписью (для 64битных систем) и перехватить нужные функции.
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
25.03.2014, 18:42
Цитата Сообщение от Убежденный Посмотреть сообщение
отличить USB-флэшку от USB-диска
Просто задать условие, типа "если размер < 10 гигов" =)
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
25.03.2014, 20:49  [ТС]
Цитата Сообщение от Izual Посмотреть сообщение
Просто задать условие, типа "если размер < 10 гигов" =)
тоже как вариант
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
26.03.2014, 00:45
Цитата Сообщение от gelior Посмотреть сообщение
тоже как вариант
Нет, кстати как раз таки и не вариант. Суть проблемы в том, что если слишком большое кол-во файлов - то будет ошибка, а размер ни о чём не говорит. У меня на флэшке в гиг было ~500 файлов, и это далеко не предел. Ведь картинки или txt файлы занимают сущий пустяк, и даже в гиге может поместиться больше 1000. А это и есть проблема. Значит условие нужно ставить после проверки на кол-во файлов. Т.е. вам по первой моей ссылке идти и немного модифициоровать пример, чтоб считал именно файлы - без папок.
0
27 / 27 / 10
Регистрация: 10.04.2013
Сообщений: 91
26.03.2014, 11:19  [ТС]
Цитата Сообщение от Izual Посмотреть сообщение
вам по первой моей ссылке идти
ссылочку можно? а то что-то не нашел
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
26.03.2014, 12:10
Цитата Сообщение от gelior Посмотреть сообщение
ссылочку можно?
Точно) Не у вас значит постил. =)
Поиск папок с помощью FindFirstFile\FindNextFile
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2014, 12:10
Помогаю со студенческими работами здесь

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

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

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

Защита файлов
В общем сделал админку для сайта, проверяю авторизован ли пользователь вот так: if(isset($_SESSION)) { //тут код } в админке...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru