Гараж Delphi




Алгоритмы и функции для эффективной разработки приложений в среде программирования Delphi

Дата компиляции для защиты программы

26.03.2010 от semen

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

Одним из самых простых способов защиты программы является ограничение по сроку действия. Такая защита обычно легко снимается, поэтому не стоит серьезно на неё полагаться, однако в качестве дополнения реализовать стоит.

В качестве начального значения даты можно принимать дату компиляции программы, функция:

function GetBuildTime:TDateTime;
begin
Result:=FileDateToDateTime(PInteger(PImageNtHeaders(hInstance+DWORD(PImageDosHeader(hInstance)._lfanew)).OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress+hInstance+4)^);
end;

При каждом запуске необходимо сверять дату компиляции программы с текущей. Сверку лучше всего вызывать где-нибудь в неприметном месте, например при совершении программой определённых действий - рассчётов, получения данных и тому подобном. Обойти такую “защиту” довольно легко, однако лишних неприятностей добавится. Да и будет подстёгивать разработчика выпускать новые версии программы :)

См. также:
Получение данных из ресурсов в Delphi
Устанавливаем системную дату из Delphi
Структура папок проекта Delphi

Рубрики: Разное

Оставьте комментарий

Заметьте: комментарии проверяются автором сайта. Нет смысла отправлять комментарий два раза.