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) Программа просто посчитает что срок истек, запрется, и все... Если юзер переводит дату ВПЕРЕД, то это уже ЕГО головная боль, и ЛЮБАЯ прога запрется вполне закономерно и правильно. А вот если НАЗАД, то тогда есть повод для раздумий... Блин!... Я перегрелся наверное. Сидел скрипт как раз лабал, и подумал: а что если... И тормознул, сорри Гыы Главное, определенное время НАЗАД я могу контролировать. Ну например юзер не сможет сделать дату меньше даты, чем я выпущу дистрибутив. Но это не спасает. Quote (Peter) что-то типа контроля последней даты запуска Идея. Мне надо это переварить. Quote (Peter) Кстати, Армадилло вполне корректно работает и с ММВ-файлами тоже. Петруха, плиз на мыло мне, дураку, инструкции!
Да пребудет с вами ММВ!
|
|
| |
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% не уверен, т.к. не было необходимости её испытывать, но "внешне" всё ОК! Андрей, качай, потом сразу удалю.
Никто не может вернуться в прошлое и изменить свой старт. Но каждый может стартовать сейчас и изменить свой финиш!
|
|
| |
as-master | Дата: Воскресенье, 06 Января 2008, 22:05 | Сообщение # 6 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Самое смешное, что эта Армадилла-Крокодилла у меня не только есть, но и даже установлена в системе Но у меня более старая версия, 3.40, поэтому пошел брать твои. Сенк ю!
Да пребудет с вами ММВ!
|
|
| |
Peter | Дата: Понедельник, 07 Января 2008, 01:58 | Сообщение # 7 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
| Quote (as-master) Но у меня более старая версия, 3.40, Сейчас вспомнил... Именно я эту версию тебе и присылал этак года три-четыре назад! Я тогда генерилку ключей под 3.60 раздобыть не мог. В те годы я на старом форуме ещё эту же тему постил... Quote (as-master) Самое смешное, что эта Армадилла-Крокодилла у меня не только есть, но и даже установлена в системе А вот это, действительно, САМОЕ СМЕШНОЕ!!! Уж давным-давно можно было не только изучить, но и применять вовсю! Добавлено (07 Январь 2008, 01:58) --------------------------------------------- Во, блин!... Только-что нашел последнюю версию 5.20... Всё верно. А Арма 3.60 "сказала" мне, что последняя - 5.02... Сорри за дезинформацию...
Никто не может вернуться в прошлое и изменить свой старт. Но каждый может стартовать сейчас и изменить свой финиш!
|
|
| |
as-master | Дата: Понедельник, 07 Января 2008, 18:19 | Сообщение # 8 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Вот, решил пока вопрос средствами ММВ... Короче, после истечении 14 дней время назад будет крутить уже бесполезно... попробуйте сами
Да пребудет с вами ММВ!
|
|
| |
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
| Всё логично, ну а как же Только я уже всё это сделал. Реестр не трогаю,использую файл. Так пример же повесил выше, зазырь, хотя теперь у меня более продвинутый алгоритм используется, чем в том примере.
Да пребудет с вами ММВ!
|
|
| |
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) а все тудаже защиту Арматурой накрывать будут Потому и не стал делать такой защиты слишком много чести :) Но и мало чести - тоже не хочу ;)
Да пребудет с вами ММВ!
|
|
| |