Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/68: Рейтинг темы: голосов - 68, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 8

Защита файлов, каталогов

22.09.2011, 23:15. Показов 13564. Ответов 28
Метки нет (Все метки)

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

Тема: разработка программы, запрещающей в заданном каталоге создание, копирование или переименование файлов с заданными именами. Список имен хранить в файле. Должна быть обеспечена защита этого файла от удаления, несанкционированного просмотра и модификации.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2011, 23:15
Ответы с готовыми решениями:

Поиск файлов и каталогов
Здравствуйте, нужна ваша помощь. Задали написать программу, которая ищет файли і папки в определенном месте, и выводит в алфавитном...

Копирование файлов из группы каталогов в несколько потоков
Добрый день.С потоками дел никогда не имел. Помогите пожалуйста сделать задачку небольшую: Обеспечить копирование файлов из группы...

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

28
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
23.09.2011, 16:16
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Вот выжимка из одного ОЧЕНЬ хорошего источника
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
DWORD dwWaitStatus;
HANDLE dwChangeHandles[2];
 
// дескриптор для отслеживания директории C:\WINDOWS на создание
// и удаление файлов.
 
dwChangeHandles[0] = FindFirstChangeNotification(
    "C:\\WINDOWS",                 // директория для просмотра
    FALSE,                         // не просматривать поддиректории
    FILE_NOTIFY_CHANGE_FILE_NAME); // отслеживать изм. имён файлов
 
if (dwChangeHandles[0] == INVALID_HANDLE_VALUE)
    ExitProcess(GetLastError());
 
// дескриптор для отслеживания C:\ на создание и удаление
// директорий.
 
dwChangeHandles[1] = FindFirstChangeNotification(
    "C:\\",                        // директория для просмотра
    TRUE,                          // просматривать поддиректории
    FILE_NOTIFY_CHANGE_DIR_NAME);  // отслеживать изм. имён директорий
 
if (dwChangeHandles[1] == INVALID_HANDLE_VALUE)
    ExitProcess(GetLastError());
 
// Итак, уведомления об изменениях установлены. Теперь ожидаем
// уведомления от дескрипторов и производим необходимое обновление.
 
while (TRUE)
{
 
    // Ждём уведомления.
 
    dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles,
        FALSE, INFINITE);
 
    switch (dwWaitStatus)
    {
        case WAIT_OBJECT_0:
 
        // В C:/WINDOWS был создан или удалён файл.
        // Обновляем эту директорию и перезапускаем уведомление.
 
            RefreshDirectory("C:\\WINDOWS")
            if ( FindNextChangeNotification(
                    dwChangeHandles[0]) == FALSE )
                ExitProcess(GetLastError());
            break;
 
        case WAIT_OBJECT_0 + 1:
 
        // В C:\ была создана или удалена директория.
        // Обновляем дерево директории и перезапускаем уведомление.
 
            RefreshTree("C:\\");
            if (FindNextChangeNotification(
                    dwChangeHandles[1]) == FALSE)
                ExitProcess(GetLastError());
            break;
 
        default:
            ExitProcess(GetLastError());
    }
}
В примере используются две функции FindFirstChangeNotification и WaitForMultipleObjects - первая для создания двух нотификационных дескрипторов, а вторая для ожидания событий на этих дескрипторах. Так же в примере используется функция FindNextChangeNotification, которая перезапускает процес уведомлений.
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 8
23.09.2011, 17:03  [ТС]
Спасибо!!
0
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 30
15.11.2011, 18:11
У меня вот похожее задание только надо обеспечивать защиту не каталогов, а чисто файлов, имена которых записаны в текстовый файл.

Тема: Разработка программы, запрещающей удаление или переименование файлов с заданными именами. Список имен должен храниться в файле. Должна быть обеспечена защита этого файла от удаления, от несанкционированного доступа и модификации. ОС - Win NT
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
15.11.2011, 18:16
Цитата Сообщение от Serg_volk777 Посмотреть сообщение
У меня вот похожее задание только надо обеспечивать защиту не каталогов, а чисто файлов, имена которых записаны в текстовый файл.
- отлавливай

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
FindNextChangeNotification
для каждого каталога с файлами и если эти изменения (Notification) касаются указанного файла - бань их...
0
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 30
15.11.2011, 18:19
А можно как нибудь с кодом, пожалуйста, а то я что то мало представляю как это будет выглядеть..
0
15.11.2011, 18:23

Не по теме:

Цитата Сообщение от Serg_volk777 Посмотреть сообщение
А можно как нибудь с кодом, пожалуйста, а то я что то мало представляю как это будет выглядеть..
- это довольно большой объём кода

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.11.2011, 20:54
Serg_volk777, вот скрин и сам экзешник. Нельзя сохранить изменения в файле(даже если вы сотрёте всю инфу в нём, всё равно сохранить это стирание у вас не получится содержимое останется неизменным), нельзя удалить каталог в котором находится файл с защитой. Удаление файла пока решено не полностью(у меня на XP он не удаляется). Мне нужно, чтобы вы запустили приложение у себя и в зависимости от того, удастся вам удалить файл или нет, я либо подпаяю проект, либо он уже "готов к употреблению"
Миниатюры
Защита файлов, каталогов  
Вложения
Тип файла: rar fprotect.exe.rar (16.1 Кб, 134 просмотров)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
21.11.2011, 21:17
Я перепаял программу. Предыдущий функцинал остался, но теперь переименовать, удалить и сохранить изменения в защищаемых файлах и файле-списке нельзя на любой 32-х машине - с NT платформой до XP - 100%(включительно, думаю что на 7-ке и Vista должно идти одна тестирования пока не проводил)!Медиа файлы - также не играют, и не записываются!Жду повторного тестирования!

PS:Автозапуск не вводил, по перепеске так и не понял нужен он или нет, ввести его легко(пока не хочу усложнять код).

Не по теме:

Руссификацию производил system("chcp 1251");, в зависимости от настроек системі при запуске программы интерфей может отобразится каракулями, чтобы привести отображение в привычное глазу отображение - необходимо вручную настроить шрифт приложения - см миниатюру

Миниатюры
Защита файлов, каталогов   Защита файлов, каталогов   Защита файлов, каталогов  

Защита файлов, каталогов  
Вложения
Тип файла: rar fprotect.exe2.0.rar (16.1 Кб, 109 просмотров)
0
21.11.2011, 23:44

Не по теме:

Serg_volk777, вы посмотрели проект???

0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 8
22.11.2011, 08:52  [ТС]
Юра, извините, любопытство взяло верх и я решила посмотреть как эта защита получилась у других. У меня на 7ке пишет, что защита установлена, при открытой вашей программе все блокируется. Каким образом вы организовали саму защиту? Файлы блокируются только когда работает программа?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.11.2011, 10:42
Цитата Сообщение от Лунатик Посмотреть сообщение
Файлы блокируются только когда работает программа?
- да именно так, однако алгоритм в топике не идеален, в нём есть небольшие изъяны: в частности защищаемые файлы можно скопировать, а также из за низкой "привилегии" процесса, notepad имеет доступ к чтению инфы из файлов(я специально выложил не полнофункциональную версию)
На счёт
Цитата Сообщение от Лунатик Посмотреть сообщение
Каким образом вы организовали саму защиту?
- посмотрите в сторону SetFileSecurity и SetNamedSecurityInfo. Описание этих функций найдёте на msdn-е http://msdn.microsoft.com/en-u... s.85).aspx
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 8
22.11.2011, 19:14  [ТС]
Я полезла через ACL, установку атрибутов файлу, вроде пролезла, но у меня намертво файлы блокируются. Т.е. даже при закрытии программы файл остается заблокированным. Только вот не смогла сделать так чтобы был запрет на создание файла с заданным именем... Обидно, но ладно, препод сказал, что такая интерпретация задания его устраивает
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.11.2011, 20:51
Лунатик, попробуйе при закрытии программы повторно установить атрибуты безопасности на NULL
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.11.2011, 12:23
Serg_volk777,выкладываю последний вариант с монопольным контролем. К функционалу предыдущих версий добавлена блокировка notepad, а также 100% защита от копирования. Жду от Вас результатов тестирования.

Не по теме:

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

Миниатюры
Защита файлов, каталогов  
Вложения
Тип файла: rar fprotect3.0.exe.rar (17.9 Кб, 81 просмотров)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.11.2011, 11:02
Serg_volk777, ниже консольный проект с диалоговыми окнами, как вы и просили.
Функционал приложения аналогичен предыдущему посту - работа происходит так:
Запустили приложение, в зависимости от наличия FileList.txt или его отсутсвия а также корректности путей в нём, программма либо скрывает консоль и выдаёт MessageBox что Защита установлена, либо остаётся консоль с описанием ошибок. Если Защита установлена после нажатия ОК появляется окошко пароля с целью последующего изменения дескриптора защитs FileList.txt, с полем ввода и Кнопками ОК и Cancel. До ввода корректного пароля FileList.txt для просмотра недоступен(понятное дело что удалить или что то с ним сделать также как и с защищёнными файлами у вас тоже не выйдет - это подразумевается). Однако помните вы сами попросили чтобы защищённые файлы можно было смотреть блокнотом!(я могу убрать доступ блокнота, но вы сами так сделать попросили).
В поле ввода вбивайте PASSWORD(регистр и язык важны!) и жмите ОК - появится MessageBox с уведомлением что Дескриптор защиты FileList.txt изменён. С этого момента вы можете смотреть содержимое FileList.txt(удалить и модифицировать вы его не можете). Cancel можете жать сколько угодно - эта кнопка просто чистит поле ввода, кстати если неверно пароль введёте окно пароля снова появится (это бесконечный цикл - до корректного ввода).

После изменения дескриптора защиты появится окно пароля для остановки защиты(оно аналогично окну для изменения дескриптора FileList.txt). Если введёте тот же PASSWORD, то появится MessageBox извещающий что Защита с файлов будет снята по закрытию приложения. Затем появится окно консоли (оно может быть свёрнуто на панели задач - увидите). Там будет простая руская надпись Для продолжения нажмите любую клавишу, как только нажмёте программа закроется и вся защита будет снята. (Экран консоли я оставил лишь с целью пошаговой рабты, впринципе я могу его не светить в конце - а сразу убивать приложение по нажатию ОК в MessageBox Защита с файлов будет снята по закрытию приложения)

Тестируйте и давайте уже завершать этот проект
PS:Граблей с русским уже нет - я использовал другой метод руссификации приложения
Миниатюры
Защита файлов, каталогов   Защита файлов, каталогов   Защита файлов, каталогов  

Защита файлов, каталогов  
Изображения
 
Вложения
Тип файла: rar fprotect_4.5.exe.rar (3.8 Кб, 96 просмотров)
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 8
25.11.2011, 15:28  [ТС]
Юра, а вы не могли бы объяснить алгоритм с паролем? ну очень любопытно...
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.11.2011, 16:01
Лунатик, да тут нет ничего сложного, создали Console Aplication с поддержкой MFC добавили 2-ую форму и вызываем её в цикле в модальном режиме DoModal(). Или что вы хотели узнать???
0
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 30
25.11.2011, 17:45
Тут у меня какая то ошибка в консоли появляется.. С чем может быть связано??
Миниатюры
Защита файлов, каталогов  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.11.2011, 23:54
Serg_volk777, да многое с чем, я же пытаюсь решить довольно сложную задачу, не видя что твориться на системе где её применять будут, в общем подпаял. (огрех мог быть когда strtok-ом парсил текст из файла списка + решил для верности указатель на начало перед чтением ставить - тестировал последний вариант 5.0 на двух ОС, багов мной замечено не было)
Вложения
Тип файла: rar fprotect_5.0_rus.rar (3.7 Кб, 161 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2011, 23:54
Помогаю со студенческими работами здесь

Файл: для выбранной пользователем папки вывести список файлов и каталогов с указанием их даты создания.
Требуется для выбранной пользователем папки вывести список файлов и каталогов с указанием их даты создания. Список выводится верно, а...

Защита текстовых файлов от копирования
Здравствуйте) помогите написать программу защити текстовых файлов от копирования. (принцип защиты - от копирования; механизм защиты -...

Архивирование определённых файлов из разных каталогов с сохранением структуры этих каталогов
Здравствуйте. Суть задачи. Есть определенный каталог (C:\X), в котором в разных подкаталогах лежат различные файлы и папки (количество,...

Копирование файлов из разных каталогов в каталоги с именами, соответствующими номерам в именах файлов
Добрый день! Помогите решить проблему. Есть семь папок (cam_1, cam_2, cam_3 и.т.д) с фотографиями (cam_1_00052.JPG, cam_1_00053.JPG,...

Извлечение файлов и каталогов
Объясните, каким образом происходит вычисление в цикле, что одно является каталогом а другое файлом. Меня интересует цикл из этого кода,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru