Необходимо что бы программа отработала на компьютере не более 30 дней.
Варианты с проверкой системного времени — отпадают в силу легкого его иземенения..
Вопросы
— как замерять (есть задумка с интернет синхронизацией)
— где и как лучше хранить дату начала использования программы?
... << RSDN@Home 1.1.3 stable >>
Re: Как правильно сделать 30ти дневную версию программы
От:
Аноним
Дата:
30.06.05 04:44
Оценка:
Здравствуйте, SSSerg, Вы писали:
SSS>Необходимо что бы программа отработала на компьютере не более 30 дней. SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения.. SSS>Вопросы SSS>- как замерять (есть задумка с интернет синхронизацией)
Не пробовал. SSS>- где и как лучше хранить дату начала использования программы?
Писал в несколько мест в реестр в шифрованном виде.
Re: Как правильно сделать 30ти дневную версию программы
Здравствуйте, SSSerg, Вы писали:
SSS>Необходимо что бы программа отработала на компьютере не более 30 дней. SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения.. SSS>Вопросы SSS>- как замерять (есть задумка с интернет синхронизацией) SSS>- где и как лучше хранить дату начала использования программы?
С интернет синхронизацией набо быть поосторожнее, если твоя прога не сетевая!
Юзер может просо испугаться, когда файрвол закричит, что прога лезет в интернет,
И скажут потом, что spy-ware!
Здравствуйте, Аноним, Вы писали:
А>Писал в несколько мест в реестр в шифрованном виде.
В одной нашей игре триальный период реализован следующим образом: когда игра запускается в первый раз, дата начала тоже отмечается в реестре в шифрованном виде и затем каждый раз проверяется системное время с допустимым интервалом. Поясню на примере:
Допустим, Ю* запустил игру 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ти дневную версию программы
Здравствуйте, SSSerg, Вы писали:
SSS>Необходимо что бы программа отработала на компьютере не более 30 дней. SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения.. SSS>Вопросы SSS>- как замерять (есть задумка с интернет синхронизацией) SSS>- где и как лучше хранить дату начала использования программы?
По моему лучше делать контроль числа запусков или времени работы в программе. Пользователю приятнее и самому удобнее.
Кстати, совет. Сделай дополнительный поток при чтении данных из реестра. Будет неприятно соображать потом дизассемблере что да как (по крайней мере мне было бы).
Re[5]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, SSSerg, Вы писали:
SSS>Необходимо что бы программа отработала на компьютере не более 30 дней.
Я использую простейший вариант:
— прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить)
— если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.
Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.
Re[2]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, DmitryElj, Вы писали:
DE>Здравствуйте, SSSerg, Вы писали:
SSS>>Необходимо что бы программа отработала на компьютере не более 30 дней.
DE>Я использую простейший вариант: DE>- прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить) DE>- если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.
Надо только записывать тогда не только в конце, а несколько раз. Что бы если пользователь удалил ключ раньше истечения срока — вторая запись всё равно осталась.
Re[6]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте, FDSC, Вы писали:
FDS>>Не мешало бы в программе шифровать названия ключей реестра — что бы было не понятно куда пишешь.
MNZ>Непонятно будет только в блокноте, а в RegMon'е всё будет как прежде.
Не понял, причём тут блокнот? Я говорю про дизассеблирование кода.
Re[2]: Как правильно сделать 30ти дневную версию программы
От:
Аноним
Дата:
30.06.05 09:23
Оценка:
DE>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.
Незря же народная мудрость гласит: ...что замки делают от честных людей!
Re[2]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, DmitryElj, Вы писали:
DE>Здравствуйте, SSSerg, Вы писали:
SSS>>Необходимо что бы программа отработала на компьютере не более 30 дней.
DE>Я использую простейший вариант: DE>- прога записывает в реестре дату первого запуска для отсчета trial-a (юзер это может отследить) DE>- если trial кончается (а юзер уже уверен что знает где лежит дата и вряд ли проверяет реестр постоянно) прога записывает бинарный ключ "триал закончен" в совершенно другую ветку реестра. Так что даже юзер сотрет первый найденный им ключ, программа всё равно работать не будет.
DE>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.
Ну, это как сказать. А если спортивный интерес. Я например в дизассемблере всё делаю.
Кстати. Всё равно есть ли запись по окончании срока или нет, если она проверяется примерно там же, где и запись о начале использования. Её будет очень легко найти в дизассеблере.
Вообще, такая программа должна создавать побольше ключей в реестре. Ключ с записью времени должен содержать ещё и какую-либо полезную информацию. Что бы если сотрёшь — программа перестала работать. По крайней мере это будет несколько непонятнее взламывать.
И ещё, нужно, что бы был ключ, считывался где-нибудь в программе (только не при запуске!), затем полезные данные из него используются, а время проверяется в совершенно другом месте — умучаешься находить где, домашний пользователь уже вряд ли взломает.
Точнее взломает, но не ключ в реестре, а уже саму блокировку программы.
Re[2]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, FDSC, Вы писали: FDS>По моему лучше делать контроль числа запусков или времени работы в программе. Пользователю приятнее и самому удобнее.
Тут такая ситуация что заказчик может ее не выключать более после первого запуска.
Я думал но тогда 30 запусков могут проходить больше года
FDS>Кстати, совет. Сделай дополнительный поток при чтении данных из реестра. Будет неприятно соображать потом дизассемблере что да как (по крайней мере мне было бы).
Хорошая идея.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, DivMind, Вы писали: DM>С интернет синхронизацией набо быть поосторожнее, если твоя прога не сетевая! DM>Юзер может просо испугаться, когда файрвол закричит, что прога лезет в интернет, DM>И скажут потом, что spy-ware!
Нет с заказчиком вроде поговорили — он готов "проверяться" через интернет..
... << RSDN@Home 1.1.3 stable >>
Re: Как правильно сделать 30ти дневную версию программы
Здравствуйте, SSSerg, Вы писали:
SSS>Необходимо что бы программа отработала на компьютере не более 30 дней. SSS>Варианты с проверкой системного времени — отпадают в силу легкого его иземенения.. SSS>Вопросы SSS>- как замерять (есть задумка с интернет синхронизацией) SSS>- где и как лучше хранить дату начала использования программы?
Забыл добавить...программа 16 битная. Пишу на MSVC v1.5
О реестрах можно только мечтать — только ini файлы...
... << RSDN@Home 1.1.3 stable >>
Re[3]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, FDSC, Вы писали:
DE>>Делать что-то более сложное ИМХО смысла мало — юзер, которому не лень постоянно возиться с мониторами реестра, покупать прогу всё равно не будет.
FDS>Ну, это как сказать. А если спортивный интерес. Я например в дизассемблере всё делаю. FDS>И ещё, нужно, что бы был ключ, считывался где-нибудь в программе (только не при запуске!), затем полезные данные из него используются, а время проверяется в совершенно другом месте — умучаешься находить где, домашний пользователь уже вряд ли взломает. FDS>Точнее взломает, но не ключ в реестре, а уже саму блокировку программы.
"Домашний пользователь", который дизассемблером ломает программы — это точно не моя целевая аудитория
А на навороченную защиту время тратить просто лень, т.к. в материальном плане оно себя вряд ли окупит.
PS: Кстати, ещё раз напомню про огромную популярность (и приличные доходы) Windows Commander — который фактически вообще не имеет никакой защиты.
Re[7]: Как правильно сделать 30ти дневную версию программы
Здравствуйте, FDSC, Вы писали:
FDS>Не понял, причём тут блокнот? Я говорю про дизассеблирование кода.
Так в том и смысл. Константные строки в программе можно посмотреть, открыв исполняемый файл в том же блокноте. Шифрование приведёт к тому, что сделать это будет невозможно, но не более того. В реестр-то всё записывается в прежнем, расшифрованном виде. Я имею в виду, имена веток реестра в функции API передаются расшифрованными. Более того, сам факт записи в реестр по прежнему присутствует. А такие утилиты как RegMon позволяют проследить, какие ветки реестра открывало, читало, изменяло, записывало и удаляло приложение. И хоть зашифруйся. Теперь понятней?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Как правильно сделать 30ти дневную версию программы
А нельзя писать в себя? В exe файл? с MZ заголовком?
Была бы отличная система опрделения первого запуска..
Хотя если конечно сам ехе-шник тоже юзер не поменяет...
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как правильно сделать 30ти дневную версию программы
От:
Аноним
Дата:
30.06.05 13:15
Оценка:
Здравствуйте, SSSerg, Вы писали:
SSS>Забыл добавить...программа 16 битная. Пишу на MSVC v1.5 SSS>О реестрах можно только мечтать — только ini файлы...