Как создать неисправимый файл в Delphi - PullRequest
1 голос
/ 27 апреля 2011

[следующее перефразирует мой предыдущий вопрос, который считался неоднозначным].

Я копаюсь в создании базового механизма лицензирования для демонстрационного приложения. То, что я имею в виду, выглядит следующим образом: приложение создает пустой «файл лицензии», называемый, скажем, «0b1xa487x.ini» при первом запуске, затем истекает через 30 дней после первого запуска и больше не может быть запущен поскольку этот конкретный файл присутствует в системе.

То, что я ищу, - это метод защиты этого конкретного файла, чтобы предотвратить удаление. Поскольку это будет пустой файл, лишенный какого-либо содержимого, я не возражаю против того, чтобы он был поврежден, имел поврежденные заголовки, неверную дату и все, что нужно, чтобы оставаться необратимым.

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

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

Ответы [ 3 ]

5 голосов
/ 27 апреля 2011

Коррумпированный предлагает не соответствовать некоторому стандарту Там нет стандартов для пустых файлов.

3 голосов
/ 28 апреля 2011

Спасибо всем за ваши предложения.Я нашел способ сделать мой файл недоступным, а именно, используя удачную комбинацию прав доступа к файлу.Недостатком является то, что эти вещи не работают на разделах, отличных от NTFS.Хорошо, что я всегда могу выполнить очистку после приложения, просто программно удаляя эти разрешения и впоследствии удаляя все.

2 голосов
/ 27 апреля 2011

Что касается вашего последнего ответа Хенку, я полагаю, что проще создать службу, запустить ее автоматически с ОС и открыть файл в fmShareExclusive с помощью TFileStream.

Но вы не можете принудительно заставить ядро ​​операционной системы или антивирус сделать ваш файл «подлежащим удалению».

С уважением,
Radu

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...