Создание демо-версии

  • Автор темы McVictor
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

McVictor

#1
Уважаемые профессионалы!
Необходима ваша помощь в решении следующей нетипичной задачи:
Есть программный продукт.
Необходимо создать демо-версию, которая будет работать 30 дней.
Среда разработки Delphi, впрочем, это не так важно. Главное понять принцип.

Жду ваших профессиональных советов.
 

grigsoft

Well-known member
15.11.2005
735
0
#2
Самое простое и надежное - купить готовое решение-обертку, которое обойдется тебе в 70-200$, например - armadillo, Hardkey, asprotect.
Посмотри в топике "Shareware и бизнес" - там это обсуждалось.
 
B

Barmutik

#3
Самому можно создать быстро только подобие надёжной демо-версии.. лучше использовать как посоветовали Выше готовые продукты...
 
D
#4
А еще лучше не 30 дней, а 100% демо, что бы и ломать было нечего. Продумать где чево подрезать важного и вперед.
 
V

Vagor.ini

#5
Посмотри на этом сайте http://www.texnik.ru/ программу ORiEN

О программе:

ORiEN - это защита для исполняемых файлов операционной системы
Microsoft Windows (защита работоспособна во всех версиях Windows).
В мире сейчас существует большое количество защит, но в данной
программе Вы найдете все лучшее от других защит, плюс уникальные
дополнительные возможности и все это за ту цену, на сколько Вы
цените эту программу! Сколько Вам не жалко - шлете автору и получаете
полнофункциональную программу.
Демонстрационное ограничение состоит в том, что защищенное приложение
теряет иконку в Проводнике, хотя она доступна (используется ошибка в самом
Проводнике Windows).
Более детальное описание программы Вы найдете в документации.
 
Z

zubr

#6
А с другой стороны, создание собственной защиты, прибавляет опыт и квалификацию программиста, имхо.
Простой принцип защиты по времени, естественно легко ломающийся:
1. Запоминаем в реестре или в файле дату установки программы.
2. При каждом запуске программы, запоминаем текущую дату, сравниваем предыдущую текущую дату и дату запуска программы (если дата запуска программы меньше предыдущей текущей, значит юзер отмотал время), сравниваем дату установки и текущую дату.
Для более надежной защиты дату помещаем в реестр или в файл в зашифрованном виде, более сложный вариант - прописываем дату в сам экзешник. Проверку условия делаем во многих местах при работе программы, причем желательно не в основном потоке программы, а в нескольких одновременно (потоков 5). Ставим защиту от отладки.
 
B

Barmutik

#7
Для: zubr

Этот вариант отлавливается и ломается даже слабым хакером на 10-20 минут ... банальным сканером обращений к реестру...

Только если для расширения кругозора ...
 
Z

zubr

#8
Этот вариант отлавливается и ломается даже слабым хакером на 10-20 минут ... банальным сканером обращений к реестру
Ну для усложнения работы хакера в реестр загоняется не один ключ, а много + зашифрованные данные, поди разберись из 100 значений загоняемых в реестр, причем в течение работы программы (не обязательно дату запоминать при запуске программы, можно при выполнении каких то действий) представляющих из себя абракадабру - тут без отладчика и дизассемблера не обойдешься, а это все же требует мало-мальской квалификации хакера.

Да защита по времени любая легко ломается, будь она на флешке или тот же asprotect.
 
B

Barmutik

#9
Это да :) Тут конечно .. я имел ввиду банальный вариант с одним клюом...
 
O

orcommander

#10
Можно сделать, чтобы прога в твоей демо-версии сама себя киляла, допустим через 5 минут после запуска (по таймеру). Вырезать таймер из кода будет сложнее, чем найти ключ в реестре.... мне кажется :)
 
O

orcommander

#11
Кстати простейший вариант будет выглядет примерно так:

В хедере:

DWORD start;

При создании формы или там еще где... :
start=GetTickCount();

И в любом цикле по которому прога часто крутится:

if (GetTickCount()>start+сколько_хочешь_времени_чтобы_работала_прога_в_милисекундах) exit(0);

Кстати простейший вариант будет выглядет примерно так:

В хедере:

DWORD start;

При создании формы или там еще где... :
start=GetTickCount();

И в любом цикле по которому прога часто крутится:

if (GetTickCount()>start+сколько_хочешь_времени_чтобы_работала_прога_в_милисекундах) exit(0);
 
Статус
Закрыто для дальнейших ответов.