Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
shareware-программа на определенное количество дней
toizyДата: Суббота, 07 Апреля 2007, 13:06 | Сообщение # 1
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Code
CurrentYear=CBK_Year
CurrentMonth=CBK_MonthNum
CurrentDay=CBK_DateNum
LoadVariable("Year","Year")
LoadVariable("Month","Month")
LoadVar  iable("Day","Day")
If (Year=0 & Month=0 & Day=0) Then
SaveVariable("Year","CurrentYear")
Year=CurrentYear
SaveVariable("Month","CurrentMonth")
Month=CurrentMonth
SaveVariable("Day","Cu  rrentDay")
Day=CurrentDay
End
Year=CurrentYear-Year
If (Year>=2) Then
Exit()
End
If (Year=1) Then
Month=Month-CurrentMonth
If (Month<>11) Then
Exit()
Else
Day=31-Day+CurrentDay
If (Day>15) Then
Exit()
End
End
End
If (Year=0) Then
Month=CurrentMonth-Month
If (Month>=2) Then
Exit()
End
If (Month=1) Then
If (CurrentMonth=5 | CurrentMonth=7 | CurrentMonth=10 | CurrentMonth=12) Then
Day=30-Day+CurrentDay
If (Day>15) Then
Exit()
End
End
If (CurrentMonth=2 | CurrentMonth=4 | CurrentMonth=6 | CurrentMonth=8 | CurrentMonth=9 | CurrentMonth=11) Then
Day=31-Day+CurrentDay
If (Day>15) Then
Exit()
End
End
If (CurrentMonth=3) Then
Day=28-Day+CurrentDay
If (Day>15) Then
Exit()
End
End
End
If (Month=0) Then
Day=CurrentDay-Day
If (Day>15) Then
Exit()
End
End
End
If (Year<0 | Month<0 | Day<0) Then
Exit()
End


Жизнь оказалась не такой уж и забавной, как поначалу...
 
as-masterДата: Воскресенье, 06 Января 2008, 16:17 | Сообщение # 2
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Предположим, делаете вы триальную прогу на определенное количество дней
(смотри скрипт выше). При первом запуске прога узнаёт текущую дату, сохраняет
её куда-то там - в реестр или в файл, потом по истечении срока - БАЦ! - гуляй, бэби!

Всё вроде хорошо. Да только вот юзер - БАЦ! - и переведет системную дату вперед.
И триальный срок - по фигу.

Есть ли у кого мысли, как это этого защититься?... Голову сломал...

PS. Триал на количество запусков не предлагать, речь идет именно о количестве дней
использования программы. С количеством запусков всё в 100 раз проще...


Да пребудет с вами ММВ!
 
PeterДата: Воскресенье, 06 Января 2008, 18:16 | Сообщение # 3
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
Во первых,...
Есть готовые крипторы (Armadillo, например), которыми можно "накрыть" прогу. Причем профессионально (с кучей опций защиты), а не доморощенно!
Кстати, Армадилло вполне корректно работает и с ММВ-файлами тоже.

Во вторых...
Если уж пошел разговор о самопалной защите, то...

Quote (as-master)
Да только вот юзер - БАЦ! - и переведет системную дату вперед. И триальный срок - по фигу.

Не понял...
Почему "по фигу"?
Программа просто посчитает что срок истек, запрется, и все...
Если юзер переводит дату ВПЕРЕД, то это уже ЕГО головная боль, и ЛЮБАЯ прога запрется вполне закономерно и правильно.
А вот если НАЗАД, то тогда есть повод для раздумий...

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


Никто не может вернуться в прошлое и изменить свой старт.
Но каждый может стартовать сейчас и изменить свой финиш!
 
as-masterДата: Воскресенье, 06 Января 2008, 19:42 | Сообщение # 4
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Peter)
Программа просто посчитает что срок истек, запрется, и все... Если юзер переводит дату ВПЕРЕД, то это уже ЕГО головная боль, и ЛЮБАЯ прога запрется вполне закономерно и правильно. А вот если НАЗАД, то тогда есть повод для раздумий...

Блин!... Я перегрелся наверное.
Сидел скрипт как раз лабал, и подумал: а что если... И тормознул, сорри smile Гыы wink
Главное, определенное время НАЗАД я могу контролировать.
Ну например юзер не сможет сделать дату меньше даты, чем я выпущу дистрибутив.
Но это не спасает.

Quote (Peter)
что-то типа контроля последней даты запуска

Идея. Мне надо это переварить.

Quote (Peter)
Кстати, Армадилло вполне корректно работает и с ММВ-файлами тоже.

Петруха, плиз на мыло мне, дураку, инструкции! smile


Да пребудет с вами ММВ!
 
PeterДата: Воскресенье, 06 Января 2008, 21:47 | Сообщение # 5
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
Для тех, кто не "в курсе"...

Armadillo - протектор исполняемых файлов(ЕХЕ) и библиотек(DLL) от взлома.
Обладает множеством средств защиты: упаковка кода и ресурсов, очистка таблицы импорта, code-splicing, наномиты, защита памяти от процесс-патчеров (лоадеров), привязка программы к "железу", ограничение по времени и количеству запусков программы, блокировка работы под отладчиками и трассировщиками и многое другое.

Приментительно к ММВ - вот скриншот справочного файла к Armadillo версии 3.60 :

Текущая версия Армы - 5.02

Quote (as-master)
Петруха, плиз на мыло мне, дураку, инструкции!

Собственно, никаких специальных инструкций не нужно, т.к. все можно узнать из файла справки.
Опций у проги до фига, и все нужно познавать собственным опытом.
Единственное о чем особо хочу предупредить, это - ПЕРЕД навешиванием защиты ОБЯЗАТЕЛЬНО делай копию файла, т.к. по-первости можно и "запороть" экзешник, и уже потом фиг снимешь защиту!
Ссылки на дистрибутивы см. личку.
Ну у меня там этих дистрибутивов Армы... В общем, я сам запутался уже...
Я залил обе версии: 3.60 и 5.02
Старая версия 100% рабочая, а насчет v5.02 я на 100% не уверен, т.к. не было необходимости её испытывать, но "внешне" всё ОК!
Андрей, качай, потом сразу удалю.
Прикрепления: 6001942.png (36.4 Kb)


Никто не может вернуться в прошлое и изменить свой старт.
Но каждый может стартовать сейчас и изменить свой финиш!
 
as-masterДата: Воскресенье, 06 Января 2008, 22:05 | Сообщение # 6
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Самое смешное, что эта Армадилла-Крокодилла у меня не только есть,
но и даже установлена в системе smile

Но у меня более старая версия, 3.40, поэтому пошел брать твои.
Сенк ю!

Прикрепления: 1105888.png (23.7 Kb)


Да пребудет с вами ММВ!
 
PeterДата: Понедельник, 07 Января 2008, 01:58 | Сообщение # 7
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
Quote (as-master)
Но у меня более старая версия, 3.40,

Сейчас вспомнил... smile
Именно я эту версию тебе и присылал этак года три-четыре назад!
Я тогда генерилку ключей под 3.60 раздобыть не мог.
В те годы я на старом форуме ещё эту же тему постил...

Quote (as-master)
Самое смешное, что эта Армадилла-Крокодилла у меня не только есть,
но и даже установлена в системе

А вот это, действительно, САМОЕ СМЕШНОЕ!!! biggrin

Уж давным-давно можно было не только изучить, но и применять вовсю! biggrin

Добавлено (07 Январь 2008, 01:58)
---------------------------------------------
Во, блин!...
Только-что нашел последнюю версию 5.20...
Всё верно.
А Арма 3.60 "сказала" мне, что последняя - 5.02... wacko
Сорри за дезинформацию...


Никто не может вернуться в прошлое и изменить свой старт.
Но каждый может стартовать сейчас и изменить свой финиш!
 
as-masterДата: Понедельник, 07 Января 2008, 18:19 | Сообщение # 8
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Вот, решил пока вопрос средствами ММВ...
Короче, после истечении 14 дней время назад будет крутить
уже бесполезно... попробуйте сами smile




Прикрепления: trial.zip (345.8 Kb)


Да пребудет с вами ММВ!
 
DeemaДата: Вторник, 08 Января 2008, 14:08 | Сообщение # 9
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
У меня немного неуклюже, но может кому пригодится..
Пользователь должен каждый месяц вводить новый пароль.
Правильный пароль каждый месяц разный и вычисляется по формуле. Например password=month*(year+546)
Так как пользователь формулы не знает, что пароль вычислить не может. Юзеру можно дать три пароля на 3 грядущие месяца. Если он захоче потом еще попользоваться прогой дать ему еще пароли на несколько месяцев вперед.
Главное, чтобы формула, по которй вычисляется пароль, была посложнее...:)
 
Alex3AДата: Вторник, 08 Января 2008, 21:28 | Сообщение # 10
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Я так думаю, что надо при первом запуске писать в мусорник дату, а затем проверять и что нужно вычислять.
Если определенный тобой ключ существует, то прога уже запускалась - вычисляем срок годности, если нет -это
первый запуск, пишем текущую дату. Конечно это только для нормального юзверя. А в прочем, если хватит интелекта
найти и поправить нужную ветку в реестре, что же, пусть правит каждые N дней.
Только не делай явных веток, типа моя крутая прога, а дай что то типа как у мелкософта, да и в их ветке.
А дату записуй не в явном формате, закодируй ее.
 
as-masterДата: Вторник, 08 Января 2008, 22:54 | Сообщение # 11
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Всё логично, ну а как же smile
Только я уже всё это сделал. Реестр не трогаю,использую файл.

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






Да пребудет с вами ММВ!
 
DeemaДата: Пятница, 11 Января 2008, 20:32 | Сообщение # 12
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
Quote (as-master)
Deema, если юзер купил у меня прогу, то не на месяц, а НАВСЕГДА.

Ну можно дать попользоваться триальной прогой например 3 месяца (на каждый месяц свой пароль), а потом если юзер решает купить прогу, прислать ему ехе-шник уже без необходимости ввода пароля..

 
as-masterДата: Пятница, 11 Января 2008, 20:47 | Сообщение # 13
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Deema)
Ну можно дать попользоваться триальной прогой например 3 месяца (на каждый месяц свой пароль), а потом если юзер решает купить прогу, прислать ему ехе-шник уже без необходимости ввода пароля..

Еще более неразумно и абсолютно нелогично. Почему?

1. Триал на 3 месяца - это слишком жирно.

2. Если разрешаешь пользоваться прогой бесплатно, то какой смысл давать пароли?
Пусть и так пользуется!

3. И самое глупое - это сидеть и заниматься рассылкой... экзешников своим покупателям :)
Ну я еще понимаю - ключ выслать, но экзешники слать?...


Да пребудет с вами ММВ!
 
humanoidДата: Воскресенье, 13 Января 2008, 00:53 | Сообщение # 14
Гуманоид
Группа: Проверенные
Сообщений: 406
Репутация: 3
Награды: 1
Статус: Offline
Да... да сделают что-то типа Блокнота... а все тудаже защиту Арматурой накрывать будут...

Quote
У меня немного неуклюже, но может кому пригодится..
Пользователь должен каждый месяц вводить новый пароль.
Правильный пароль каждый месяц разный и вычисляется по формуле. Например password=month*(year+546)
Так как пользователь формулы не знает, что пароль вычислить не может. Юзеру можно дать три пароля на 3 грядущие месяца. Если он захоче потом еще попользоваться прогой дать ему еще пароли на несколько месяцев вперед.
Главное, чтобы формула, по которй вычисляется пароль, была посложнее...:)

Уссаться можно... Билл гейтс плачет от восхишения....


Hi, from Moon!
 
as-masterДата: Воскресенье, 13 Января 2008, 00:57 | Сообщение # 15
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (humanoid)
Да... да сделают что-то типа Блокнота...

Насчет Блокнота я не знаю, но вот My Cookery Book я сделал шароварной :)
Смотри на сайте.

Quote (humanoid)
а все тудаже защиту Арматурой накрывать будут

Потому и не стал делать такой защиты слишком много чести :)
Но и мало чести - тоже не хочу ;)


Да пребудет с вами ММВ!
 
  • Страница 1 из 1
  • 1
Поиск: