Как правильно сделать 30ти дневную версию программы
От: SSSerg  
Дата: 29.06.05 22:38
Оценка:
Необходимо что бы программа отработала на компьютере не более 30 дней.
Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
Вопросы
— как замерять (есть задумка с интернет синхронизацией)
— где и как лучше хранить дату начала использования программы?
... << RSDN@Home 1.1.3 stable >>
Re: Как правильно сделать 30ти дневную версию программы
От: Аноним  
Дата: 30.06.05 04:44
Оценка:
Здравствуйте, SSSerg, Вы писали:

SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.

SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
SSS>Вопросы
SSS>- как замерять (есть задумка с интернет синхронизацией)
Не пробовал.
SSS>- где и как лучше хранить дату начала использования программы?
Писал в несколько мест в реестр в шифрованном виде.
Re: Как правильно сделать 30ти дневную версию программы
От: DivMind  
Дата: 30.06.05 05:22
Оценка: +2
Здравствуйте, SSSerg, Вы писали:

SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.

SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
SSS>Вопросы
SSS>- как замерять (есть задумка с интернет синхронизацией)
SSS>- где и как лучше хранить дату начала использования программы?

С интернет синхронизацией набо быть поосторожнее, если твоя прога не сетевая!
Юзер может просо испугаться, когда файрвол закричит, что прога лезет в интернет,
И скажут потом, что spy-ware!
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Голгофа — место для желающих быть выше других.

С уважением, Виталий
DivMind Solution
www.divmind.com
Re[2]: Как правильно сделать 30ти дневную версию программы
От: SINED_ www.sinedsoft.com
Дата: 30.06.05 06:21
Оценка: 17 (5)
Здравствуйте, Аноним, Вы писали:

А>Писал в несколько мест в реестр в шифрованном виде.


В одной нашей игре триальный период реализован следующим образом: когда игра запускается в первый раз, дата начала тоже отмечается в реестре в шифрованном виде и затем каждый раз проверяется системное время с допустимым интервалом. Поясню на примере:

Допустим, Ю* запустил игру 5 числа месяца. Если он переводит после этого дату на 4-е число, то игра не запускается. Если он переводит дату на 5+триал_дни+1, то игра не запускается. Если же игра запустилась 6-го числа, то начало периода сместилось на 6-е число и триал_дни уменьшились на 1. Таким образом, если Ю запустит теперь игру 5-го числа, то она не будет работать, т.к. интервал уже сместился. И так каждый день допустимый временной интервал уменьшается.

--5*****11--
---6****11--
------9*11--

Ю* — (от англ. user) пользователь.
Не курю — говорят это вредно для легких. А я как раз легкий.
Re[3]: Как правильно сделать 30ти дневную версию программы
От: Аноним  
Дата: 30.06.05 06:25
Оценка:
Всегда остается возможность вычистить реестр и установить пр-му поновой.
Re[4]: Как правильно сделать 30ти дневную версию программы
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 07:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всегда остается возможность вычистить реестр и установить пр-му поновой.


Не мешало бы в программе шифровать названия ключей реестра — что бы было не понятно куда пишешь.

Вообще, ключи реестра очень легко найти в дизассемблере — я так не раз делал.
Re: Как правильно сделать 30ти дневную версию программы
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 07:56
Оценка: +1
Здравствуйте, SSSerg, Вы писали:

SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.

SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
SSS>Вопросы
SSS>- как замерять (есть задумка с интернет синхронизацией)
SSS>- где и как лучше хранить дату начала использования программы?

По моему лучше делать контроль числа запусков или времени работы в программе. Пользователю приятнее и самому удобнее.

Кстати, совет. Сделай дополнительный поток при чтении данных из реестра. Будет неприятно соображать потом дизассемблере что да как (по крайней мере мне было бы).
Re[5]: Как правильно сделать 30ти дневную версию программы
От: MNZ Россия  
Дата: 30.06.05 08:07
Оценка: +2
Здравствуйте, FDSC, Вы писали:

FDS>Не мешало бы в программе шифровать названия ключей реестра — что бы было не понятно куда пишешь.


Непонятно будет только в блокноте, а в RegMon'е всё будет как прежде.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Как правильно сделать 30ти дневную версию программы
От: DmitryElj Россия  
Дата: 30.06.05 09:03
Оценка: :))
Здравствуйте, SSSerg, Вы писали:

SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.


Я использую простейший вариант:
— прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить)
— если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.

Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.
Re[2]: Как правильно сделать 30ти дневную версию программы
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 09:09
Оценка:
Здравствуйте, DmitryElj, Вы писали:

DE>Здравствуйте, SSSerg, Вы писали:


SSS>>Необходимо что бы программа отработала на компьютере не более 30 дней.


DE>Я использую простейший вариант:

DE>- прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить)
DE>- если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.

Надо только записывать тогда не только в конце, а несколько раз. Что бы если пользователь удалил ключ раньше истечения срока — вторая запись всё равно осталась.
Re[6]: Как правильно сделать 30ти дневную версию программы
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 09:10
Оценка:
Здравствуйте, MNZ, Вы писали:

MNZ>Здравствуйте, FDSC, Вы писали:


FDS>>Не мешало бы в программе шифровать названия ключей реестра — что бы было не понятно куда пишешь.


MNZ>Непонятно будет только в блокноте, а в RegMon'е всё будет как прежде.


Не понял, причём тут блокнот? Я говорю про дизассеблирование кода.
Re[2]: Как правильно сделать 30ти дневную версию программы
От: Аноним  
Дата: 30.06.05 09:23
Оценка:
DE>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.

Незря же народная мудрость гласит: ...что замки делают от честных людей!
Re[2]: Как правильно сделать 30ти дневную версию программы
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 09:25
Оценка:
Здравствуйте, DmitryElj, Вы писали:

DE>Здравствуйте, SSSerg, Вы писали:


SSS>>Необходимо что бы программа отработала на компьютере не более 30 дней.


DE>Я использую простейший вариант:

DE>- прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить)
DE>- если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.

DE>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.

Ну, это как сказать. А если спортивный интерес. Я например в дизассемблере всё делаю.

Кстати. Всё равно есть ли запись по окончании срока или нет, если она проверяется примерно там же, где и запись о начале использования. Её будет очень легко найти в дизассеблере.

Вообще, такая программа должна создавать побольше ключей в реестре. Ключ с записью времени должен содержать ещё и какую-либо полезную информацию. Что бы если сотрёшь — программа перестала работать. По крайней мере это будет несколько непонятнее взламывать.

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

Точнее взломает, но не ключ в реестре, а уже саму блокировку программы.
Re[2]: Как правильно сделать 30ти дневную версию программы
От: SSSerg  
Дата: 30.06.05 09:53
Оценка:
Здравствуйте, FDSC, Вы писали:
FDS>По моему лучше делать контроль числа запусков или времени работы в программе. Пользователю приятнее и самому удобнее.
Тут такая ситуация что заказчик может ее не выключать более после первого запуска.
Я думал но тогда 30 запусков могут проходить больше года

FDS>Кстати, совет. Сделай дополнительный поток при чтении данных из реестра. Будет неприятно соображать потом дизассемблере что да как (по крайней мере мне было бы).

Хорошая идея.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как правильно сделать 30ти дневную версию программы
От: SSSerg  
Дата: 30.06.05 09:53
Оценка:
Здравствуйте, DivMind, Вы писали:
DM>С интернет синхронизацией набо быть поосторожнее, если твоя прога не сетевая!
DM>Юзер может просо испугаться, когда файрвол закричит, что прога лезет в интернет,
DM>И скажут потом, что spy-ware!
Нет с заказчиком вроде поговорили — он готов "проверяться" через интернет..
... << RSDN@Home 1.1.3 stable >>
Re: Как правильно сделать 30ти дневную версию программы
От: SSSerg  
Дата: 30.06.05 09:53
Оценка: :)
Здравствуйте, SSSerg, Вы писали:

SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.

SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
SSS>Вопросы
SSS>- как замерять (есть задумка с интернет синхронизацией)
SSS>- где и как лучше хранить дату начала использования программы?
Забыл добавить...программа 16 битная. Пишу на MSVC v1.5
О реестрах можно только мечтать — только ini файлы...
... << RSDN@Home 1.1.3 stable >>
Re[3]: Как правильно сделать 30ти дневную версию программы
От: DmitryElj Россия  
Дата: 30.06.05 10:00
Оценка:
Здравствуйте, FDSC, Вы писали:

DE>>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.


FDS>Ну, это как сказать. А если спортивный интерес. Я например в дизассемблере всё делаю.

FDS>И ещё, нужно, что бы был ключ, считывался где-нибудь в программе (только не при запуске!), затем полезные данные из него используются, а время проверяется в совершенно другом месте — умучаешься находить где, домашний пользователь уже вряд ли взломает.
FDS>Точнее взломает, но не ключ в реестре, а уже саму блокировку программы.

"Домашний пользователь", который дизассемблером ломает программы — это точно не моя целевая аудитория

А на навороченную защиту время тратить просто лень, т.к. в материальном плане оно себя вряд ли окупит.

PS: Кстати, ещё раз напомню про огромную популярность (и приличные доходы) Windows Commander — который фактически вообще не имеет никакой защиты.
Re[7]: Как правильно сделать 30ти дневную версию программы
От: MNZ Россия  
Дата: 30.06.05 10:08
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Не понял, причём тут блокнот? Я говорю про дизассеблирование кода.


Так в том и смысл. Константные строки в программе можно посмотреть, открыв исполняемый файл в том же блокноте. Шифрование приведёт к тому, что сделать это будет невозможно, но не более того. В реестр-то всё записывается в прежнем, расшифрованном виде. Я имею в виду, имена веток реестра в функции API передаются расшифрованными. Более того, сам факт записи в реестр по прежнему присутствует. А такие утилиты как RegMon позволяют проследить, какие ветки реестра открывало, читало, изменяло, записывало и удаляло приложение. И хоть зашифруйся. Теперь понятней?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Как правильно сделать 30ти дневную версию программы
От: SSSerg  
Дата: 30.06.05 11:24
Оценка:
А нельзя писать в себя? В exe файл? с MZ заголовком?
Была бы отличная система опрделения первого запуска..
Хотя если конечно сам ехе-шник тоже юзер не поменяет...
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как правильно сделать 30ти дневную версию программы
От: Аноним  
Дата: 30.06.05 13:15
Оценка:
Здравствуйте, SSSerg, Вы писали:

SSS>Забыл добавить...программа 16 битная. Пишу на MSVC v1.5

SSS>О реестрах можно только мечтать — только ini файлы...

Простите, а какой у вас там сейчас год?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.