TOP10 ошибок защитников программ

         

: Хронометраж обратного отсчета времени


Никогда не полагайтесь на системное время — его очень легко перевести назад! К тому же, существует множество утилит типа TrialFreezer, перехватывающих вызов API-функции семейства GetLocalTime и подсовывающих отдельно взятой программе подложную информацию, что намного удобнее, чем работать с переведенным временем, поскольку при этом страдают все приложения.

Что может сделать защита? Сбегать в Интернет за Атомным временем? А если юзер поставит брандмауэр? (А он его наверняка поставит, если только не лось). Вести счетчик запусков — прекрасная идея, только его очень легко обнаружить с помощью сравнения двух "соседних" дампов.

Надежнее всего — сканировать диск на предмет поиска самых разных файлов и смотреть на дату их создания, причем брать не только дату создания/последней модификации самого файла, но так же извлекать "штамп времени" из заголовков PE-файлов и динамических библиотек, которые можно обнаружить... в своем адресном пространстве без всякого обращения к файловой системе! Ведь скачивает же пользователь новые версии различных разделяемых библиотек, а многие антивирусы и другие "сторожевые" программы устанавливают модули, проецируемые на все процессы сразу. Конечно, данная методика определения времени не очень точна и пригодна лишь для грубой оценки верхней границы времени использования, однако, учитывая наличие службы "windows update" и довольно частный выход новых фиксов, точность определения вплотную приближается к одному-двум месяцам, что для триальных защит вполне достаточно.



Содержание раздела