![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать ограничение работы программы по дате?
O.Snopok © (2007-08-31 04:18:00)Мне нужно, чтобы программа работала только до конца 2007 года. Как это реализовать таким образом, чтобы "проблема" не решалась простым переводом виндовских часов?
Anatoly Podgoretsky (2007-09-05 11:15:00) [1]И как только выяснится, что автор преднамерено это сделал, то усилия на информирование общественности надо удвоить, что бы другие не попались на этот лохотрон.
Slym (2007-09-05 10:43:00) [2]Anatoly Podgoretsky © (05.09.07 10:11) [70]
Винду не выбрасываешь? Bill Gates must die?
а патчи выходят регулярно :)
Slym (2007-09-05 10:41:00) [3]Если программой пользовались (без ошибок) весь лицензионный период (подсели на продукт), а потом вдруг повалили ошибки то с высокой долей вероятности пользователи обратятся к разработчику - дальше дело техники.
Надежный способ - "обратиться к разработчику" :) за исправлением, а в данном случае за продлением лицензии
Anatoly Podgoretsky (2007-09-05 10:11:00) [4]> Slym (05.09.2007 04:39:09) [69]
Очень надежный способ отправить программу в корзину, а автора занести в черный спискок как неумейку и раструбить об этом по Инету.
Slym (2007-09-05 04:39:00) [5]принцип - программу с ошибками проще выбросить...
способ защиты-ошибки зависит от типа программы -
игра- занижаем фпс, отключаем saveлки (или их коцаем)
редактор текстовый/графич- отключаем saveлки ухудшаем графику, вылетаем случайно при долгом несохранении :)
считалки чего либо- неточно или неправильно считать...
формировалка отчетов- нагл лабел, очепятки автозамены (директор - казел)
сервисная программа- ничего лучше потери размножения хендлов не придумал :), или случайных вылетов недопустимых при непрерывной работе
f:=TFileStream.Create
try
//работаем
finally
if registered then f.Free;
end
работа с инетом- лепим трояна, spyware или все что угодно
для всего что угодно- ошибка кодировки весь или часть текста в левой кодировке, шрифте (symbol) или сдвигсимвола-1
vasIZmax (2007-09-04 23:48:00) [6]Попытаюсь предложить свой вариант, может и не 100% работающий, мало ли может кого и на мысль какую натолкнет.
Создать предварительно форму с "Логин/Пароль" + чекер "запомнить пароль".
Первый раз пользователь вводит пароль и возможно (по-праграммистски как-то:)) отметит запомнить пароль.
После каждого перезапуска проги пароль видоизменять в файле таким образом чтобы в него записывалось последняя дата запуска (понятно, что можно помудрить с этим файлом хранящим пароль). После анинстала записывать в реестр, а при новой попытке инстала - предварительно прочитать эти данные из реестра.
А вообще "схема" защиты связанная с вызовом ошибок различных по окончанию срока - интересна... хотя б в качестве развлечения:)
P.S. "Пиши программы которые будет дешевле купить, чем взломать" (с)
Инс (2007-09-04 23:02:00) [7]
> Проглядите даты создания файлов в system32 - лично у меня
> там "нереальных" нет, к тому же, их можно отсеивать.
Видимо имеется в виду не дата создания, а Last Access. А что будет, если перевести время назад и перезагрузиться? ;)
Anatoly Podgoretsky (2007-09-04 22:43:00) [8]> O.Snopok (04.09.2007 22:39:05) [65]
> В связи с этим вопрос - насколько сложно изменить дату создания файла? А если он системный?
Никакой сложности, элементарнейшая задача для начинающего программиста, или просто воспользоваться готовыми программами, например сторонними файловыми менеджерами, даже из ДОС
O.Snopok (2007-09-04 22:39:00) [9]
> Германн © (04.09.07 01:31) [57]
>
>
> > O.Snopok © (04.09.07 01:03) [56]
> >
> > но если текущее время между временем компиляции и временем-
>
> > компиляции + время-которое-вы-разрешаете-работать-с-программой,
>
> > то все отлично работает :) то есть, вопрос все так же
> решается
> > простым переводом часиков
> >
>
> Я так понимаю, что Германн © (02.09.07 00:55) [47] ты
> просто проигнорировал. Жаль! Жаль что даёшь советы, а они
> канут в пустоту. :(((
Вовсе нет, просто та библиотека сейчас находится в процессе моего изучения:)
> Котик Б (04.09.07 10:18) [64]
>
> Проститеза то, что нагло вмешиваюсь в ваш высоконаучный
> спор :)
>
> Но я бы не стал делать никакой защиты - а ограничил бы функциональность
> таким образом, что при некотором сроке работы с программой
> с ней было бы психологически некомфортно работать ...
> как демо-версия в игрушках...
Проблема-то остается - как отсчитывать этот самый срок работы?
> Slym © (04.09.07 05:38) [59]
>
> а текущую дату можно выяснить: сканированием %windir%\*.
> *, system32\*.* и брать время файлов из них выбираем 10
> с максимальной датой и усредняем :)
> если есть сетка (а она есть почти везде) можно просканить
> время соседних кампов
А вот эта идея, кажется, и впрямь неплоха. Проглядите даты создания файлов в system32 - лично у меня там "нереальных" нет, к тому же, их можно отсеивать. В связи с этим вопрос - насколько сложно изменить дату создания файла? А если он системный?
Котик Б (2007-09-04 10:18:00) [10]Проститеза то, что нагло вмешиваюсь в ваш высоконаучный спор :)
Но я бы не стал делать никакой защиты - а ограничил бы функциональность таким образом, что при некотором сроке работы с программой с ней было бы психологически некомфортно работать ... как демо-версия в игрушках...
Anatoly Podgoretsky (2007-09-04 10:08:00) [11]> Slym (04.09.2007 09:43:01) [61]
(2000*9+2100)/10=2010 и это только для одной подобной даты
А по нижней границе 1980*10/10=1980
Slym (2007-09-04 09:44:00) [12]order by dates desc
Slym (2007-09-04 09:43:00) [13]Anatoly Podgoretsky © (04.09.07 8:47) [60]
поэтому усредняется - select avg(dates) from (select top 10 dates from files)
Anatoly Podgoretsky (2007-09-04 08:47:00) [14]> Slym (04.09.2007 05:38:59) [59]
Я поостерегся бы опираться на даты файлов, поскольку лично наблюдал, как некоторые программы создают файлы с датой далеко в будущем.
Slym (2007-09-04 05:38:00) [15]а текущую дату можно выяснить: сканированием %windir%\*.*, system32\*.* и брать время файлов из них выбираем 10 с максимальной датой и усредняем :)
если есть сетка (а она есть почти везде) можно просканить время соседних кампов
Slym (2007-09-04 05:21:00) [16]1. Неявная защита...
По достижении 2008г не обязательно сразу отрубатся...
2. В случайность нагл скрена
Не при запуске! а во время работы программы, случайным образом, с увеличением вероятности...
3. Множественная проверка для затруднения отладки (не единая точка входа) с различными алгоритмами проверки...
дублирование кода проверки в нескольких модулях...
4. Ничего никуда не писать...
Это легко отлавливается...
5. Затруднение отладки и комфортного использования:
можно в несколько потоков, внесение ошибок в код срабатывающих при окончании триал периода (мемлики, потеря хендлов, запись нетуда)
6. Для особо наглых убийство системы... (чикаем разные dll, вываливаем в BSOD, меняем обои на "заплати нам!",набираем модемом уругвай)
Германн (2007-09-04 01:31:00) [17]
> O.Snopok © (04.09.07 01:03) [56]
>
> но если текущее время между временем компиляции и временем-
> компиляции + время-которое-вы-разрешаете-работать-с-программой,
> то все отлично работает :) то есть, вопрос все так же решается
> простым переводом часиков
>
Я так понимаю, что Германн © (02.09.07 00:55) [47] ты просто проигнорировал. Жаль! Жаль что даёшь советы, а они канут в пустоту. :(((
P.S. Если в том посте тебя смутило упоминание ВСВ, то заверяю, что к Borland C Builder сие упоминание не относится! :-)
O.Snopok (2007-09-04 01:03:00) [18]но если текущее время между временем компиляции и временем-компиляции + время-которое-вы-разрешаете-работать-с-программой, то все отлично работает :) то есть, вопрос все так же решается простым переводом часиков
Инс (2007-09-04 00:01:00) [19]
> что 100 дней, что до конца 2007 - какая разница?
Разница в общем то есть. Когда известно время компиляции, можно вычислить перевод времени назад. Если текущее время меньше, чем время компиляции, то программа не запускается. А если вы будете проверять только по концу 2007 года, то действительно, переведу часы на 10 лет назад, и все дела.
> время сборки можно зашить
Не нужно, см [50]
O.Snopok (2007-09-03 23:57:00) [20]
> Инс © (02.09.07 00:40) [46]
>
>
> > [45] O.Snopok © (01.09.07 23:20)
>
> Вы сами себе поставили жесткие рамки. Почему именно до конца
> 2007 года? А почему нельзя, например, 100 дней от инсталляции?
> А почему нельзя зашить в программу время сборки (кстати,
> оно и так зашито, если надо, могу подсказать, как его вытащить)
> и если у пользователя время меньше этого, то также выдавать
> ошибку?
>
что 100 дней, что до конца 2007 - какая разница? суть задачи не меняется. время сборки можно зашить, но ведь проблема с возможностью перевести часы не исчезает...