Запрет доступа к файлу или всеобщее скрытие
Имеется программа - основной модуль, которая выполняет, например, тестирование...
Имеется служба - вспомогательный модуль, который защищает файлы от постороннего доступа...
Приведу пример. Имеется тестирование, в котором есть, допустим, текстовый файл, содержащий список вопросов и ответов, включая правильные. Этот файл не зашифрован - просто к нему закрыт доступ. Если мы проходим тестирование, относящееся к этому файлу, то посылается команда сервису, который открывает доступ к файлу... после загрузки программой файла тестирования, например, в память, посылается опять сервиссу команда, которая закрывает доступ к файлу...
Похожая функция реализована в Антивирусе Касперского, т.е. есть служба автозащиты модулей программы...
Есть мысль сделать наподобие программы HideFolderXP... точно не знаю, как она реализована, но как я понял, она просто метит файлы, которые нужно скрыть, как удаленные, но хранит и знает адрес на жестком для последующего их "восстановления"...
Если что-либо необходимо рассказать поподробнее - расскажу... ;)
PS: Была мысль сервисом при запуске как бы открывать файлы на чтение, в результате чего доступ к файлу получить уже нельзя, т.к. "Файл занят другим процессом"
В-общем, выкладывайте все свои мысли по этому поводу и методам реализации ;) Будем, так сказать, обсуждать...
Или под FAT тоже должно работать?
Если более просто, то изучи параметры CreateFile кажется там третий по счету параметр запрещает разделение доступа между приложениями у открытого тобою файла...
Но лучше применяй шифрование, ведь если пользователь загрузится с флэшки любая активная защита не поможет...
По крайней мере от того кто сможет расшифровать даже самый простой способ кодирования твоя защита точно не спасет :)
PS "Приведу пример. Имеется тестирование..." как минимум грубо... :)
Для чего нужна защита? Так вот...
Один человек сделал все этим, будем называть, курсы. Потом преподает их...
Другой человек пришел, посмотрел - а неплохие курсы! Взял, да и скопировал их себе, заодной и с программой - чтоб не париться и тоже бабки колотить, преподавая курсы :)
Программу я защитил, а вот с файлами некая проблема есть (я хотя их тоже защитил), но процес "раззащитивания" очень медленный при больших объемах информации :( Скажем, информации может быть гига на 4, т.е. на один DVD-диск...
Поэтому те средства шифрования, причем, как я понял, текстовых файлов, не годятся ввиду того, что "не одними TXT программа занята" :(
И что? Чем тебе не устроил способ с ограничением прав, который я предложил уже?
Поэтому те средства шифрования, причем, как я понял, текстовых файлов, не годятся ввиду того, что "не одними TXT программа занята" :(
А при чем тут текстовые файлы? Шифровать то без разницы что.
хотелось бы просто узнать - есть ли другие варианты... так, на всякий случай ;)
Медиа-файлы режь на части и перемешивай в одной папке используя нейтральные названия и расширения...
Во время исполнения программы склеивать файлы можно в момент...
Текстовые можно шифровать обычным XOR с достаточно длинной маской.
Для тех кто "пришел, посмотрел" вполне достаточно...
Еще как вариант прячь контент в архивный файл с паролем и извлекай программно из архива по мере необходимости...
К некоторым архиваторам есть кстати в инете готовые исходники...
просто узнаю другие варианты, так как с архивированием мне не очень нравится...
просто узнаю другие варианты, так как с архивированием мне не очень нравится...
Юзать внешний архиватор - изврат какой.
Лучше шифровать просто файл самому.
Или же мешать как-то байты в файле, например, первые 20 байт в конец файла пихать... - он стандартно не откроется, да и алгоритм извращенский - чем не защита? :)
ну а если нет )) то... извините )
Или же мешать как-то байты в файле, например, первые 20 байт в конец файла пихать... - он стандартно не откроется, да и алгоритм извращенский - чем не защита? :)
Да защита нормальная строится не на извращенстве алгоритма, а на его вычислительной сложности, если не знаешь определенный параметр. Пусть даже алгоритм полностью открытый и широкоизвестный. )
А как быть с мультимедиа-файлами, например, WORD, AVI? Они шифруются не от студентов, а от тех, кто хочет воспользовать уже готовым и банально спи<...> т.е. украть то, что сделали другие... Как тут быть? Резать на куски?
Примеров их исспользования в документации море. )
PS: В исходниках на сайте есть пример скрытия папки... Дескать, основано на "косяках" Windows... Это хороший метод?
PS: В исходниках на сайте есть пример скрытия папки... Дескать, основано на "косяках" Windows... Это хороший метод?
Не знаю о каком примере говоришь ты - и что в твоем понимании косяки.
Реализация скрытия папки(процесса, ветки реестра) в системах NT реализуется как правило двумя способами - первый - это перехват вызова функции ядра и подмену возвращаемых ею результатов, второй - непосредственную модификацию структур данных ядра, с которыми данная функция работает. И то и другое - потенциально может вызвать ругань антивиря - но при полном доступе к компьютеру обычно сложностей никаких не возникает.
Как правило подход связанный с использованием "ядерных" функций, влечет за собой ряд проблем связанных с конкретной версией системы - т.е. иногда установка сервис-пака может похерить к такойто матери всю работу программы.
<...>
Ошибся немного - не косяки, а особенности... В частности, особенности файловой системы и обработки этой файловой системы средствами Windows. Дело заключается в том, что если задать имя файла (папки) как недвозможное, но сделать это в обход стандартных средств, то Windows, а также и все другие программы не смогут попросту найти файл (папку) и выдадут сообщение об ошибке...
Насколько хороша такая идея?
Желательно, конечно, простенький типа вывода ShowMessage() на экран... И желательно искодник... Кто-нибудь занимался таким делом?