Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 14.07.2009
Сообщений: 3

Как запоролить программу сроком на 1 год

27.07.2009, 17:33. Показов 1956. Ответов 11
Метки нет (Все метки)

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

Заранее спасибо за ответ!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2009, 17:33
Ответы с готовыми решениями:

Как запоролить Access и обращаться из DElphi
Доброго времени суток! Помогите запаролить Access и обращаться из DElphi, не могу найти как это сделать Никто не ставил паролей ?

Как запоролить диск С:
Мне поставили задачу. Как Ограничить детей к доступу изменения учетных записей. Раньше я ставила пароль просто на вход компьютера. Дети...

Написать программу, которая предлагает пользователю ввести год своего рождения и текущий год и в ответ показы
Написать программу, которая предлагает пользователю ввести год своего рождения и текущий год и в ответ показывает возраст пользователя.

11
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
27.07.2009, 18:03
Самый простой способ - сохранять гдето дату установки и при каждом старте сверять её и текущую дату.
Однако он обходится элементарным переводом системных часов. (просьба модераторам воспринимать как описание недостатка способа, а не рекомендации по взлому).
Все способы, опирающиеся на время локального компа, таким образом можно обойти.
Если прога для своей работы требует интернета - то лучше вести онлайн-базу, в которую будет добавляться записи (автоматически) при первом обращении проги, при последующих будет выдаваться число дней с момента первого запроса, а прога уже пусть проверяет стоит ли ей работать.

Вообще-то на написание достойной защиты времени и сил может уйти больше, чем на написание программы.
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
27.07.2009, 18:42
Можно обойтись и без онлайн-базы:
при первом запуске программы записать текущую дату и зашифровать ее, потом где-нить надежно сохранить.
Саму дату брать не с локального компьютера, а путем парсинга какой-нить странички с новостями с попсового сайте, например того же яндекса.
Далее при запуске программы сверять сохраненную дату и дату на каком-нить сайте.

Но это все при условии, что на компьютере используется интернет.
Написал как пример того, что можно обойтись и без онлайн-базы ))
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
27.07.2009, 19:43
Цитата Сообщение от TAVulator Посмотреть сообщение
...Но это все при условии, что на компьютере используется интернет.
Написал как пример того, что можно обойтись и без онлайн-базы ))
Онлайн-база такого типа делается за один день (если не сказать - час). Но проблема не в этом. Если проге для работы не необходим инет - то доступ может быть закрыт. (я при установке программ инет выключаю всегда; собственно из-за этого гугл хром не ставил).
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
27.07.2009, 19:56
Цитата Сообщение от Delphin_KKC Посмотреть сообщение
...Если проге для работы не необходим инет - то доступ может быть закрыт.
Ну вот если инет в программе не используется, то тут уже без ухищрений не обойтись.
сохранять данные о дате запуска в разных местах и в зашифрованном виде, постоянно сверять системную дату на предмет манипулирования ей и т.п.

по-моему самый простой и более ли менее надежный вариант такой:
  • сохранить дату первого запуска
  • при запуске сверять на истечение "срока годности"
  • так же при каждом запуске записывать дату запуска, и при последующих запусках проверять на предмет того, что текущая дата больше даты последнего запуска программы
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
27.07.2009, 20:17
Цитата Сообщение от TAVulator Посмотреть сообщение
Ну вот если инет в программе не используется, то тут уже без ухищрений не обойтись.
+1
Цитата Сообщение от TAVulator Посмотреть сообщение
сохранять данные о дате запуска в разных местах и в зашифрованном виде, постоянно сверять системную дату на предмет манипулирования ей и т.п.
Таким образом нужно написать функции шифрования/дешифровки. Постоянно, имхо, не стоит проверять. Достаточно только при старте программы и, скажем, раз в 24 часа. Иначе - быстродействие проги падает, а защищённость практически не повышается.

Но даже если зашифровать хранимую дату, то можно "заморозить" программу так, что она вечно будет думать что сегодня, например, 20й день использования..

Цитата Сообщение от TAVulator Посмотреть сообщение
  • сохранить дату первого запуска
  • при запуске сверять на истечение "срока годности"
  • так же при каждом запуске записывать дату запуска, и при последующих запусках проверять на предмет того, что текущая дата больше даты последнего запуска программы
чуть иначе изложенный смысл первого предложения моего первого поста
К тому ж, надо проверять не строго больше, а больше или равно. Ведь прогу могут запускать два и более раз за день.
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
27.07.2009, 21:57
Цитата Сообщение от Delphin_KKC Посмотреть сообщение
Но даже если зашифровать хранимую дату, то можно "заморозить" программу так, что она вечно будет думать что сегодня, например, 20й день использования..
хмм... придется постараться, чтобы так сделать.
ибо программа помнит дату своего первого запуска... и чтобы заморозить на 20 дне, нужно чтобы текущая дата в системе была всегда дата_первого_запуска+20, или же каждый день менять дату первого запуска на текущая_дата-20 ...
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
27.07.2009, 21:59
Цитата Сообщение от TAVulator Посмотреть сообщение
хмм... придется постараться, чтобы так сделать.
ибо программа помнит дату своего первого запуска... и чтобы заморозить на 20 дне, нужно чтобы текущая дата в системе была всегда дата_первого_запуска+20, или же каждый день менять дату первого запуска на текущая_дата-20 ...
Про 20й день я для примера. Можно и на 120м. Лишь бы работала
Всё куда проще. Чтоб не приняли за рекомендации по взлому - детали в личке.
0
50 / 49 / 16
Регистрация: 12.03.2009
Сообщений: 133
28.07.2009, 08:21
Самым оптимальным , (если позволяет бюджет) не изобретать велосипед, а воспользоватья готовыми утилитами, электронными ключами например HASP. Если программа очень ценна, то в любом случае, какую бы вы защиту не ставили ее взломают. А все остальные способы защиты ломаются на ура.

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

1. При инсталяции записывается дата инсталяции и ставится метка (типа boolean может быть если true то запускается программа, иначе программа после старта завершает свою работу)
2 Далее при каждом запуске программы либо в файл, либо в реестр вносится текущая дата.
3. При старте программы:
1) проверяется не стоит ли метка о завершении программы, если стоит то завершаем работу
2) прошел ли год с момента первого запуска, если прошел, то вносится запись что год истек и программа в следующем уже по метке о прошествии года завершает свою работу, даже если будет изменена дата.
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
28.07.2009, 18:23
Цитата Сообщение от _zz_ Посмотреть сообщение
Самым оптимальным , (если позволяет бюджет) не изобретать велосипед, а воспользоватья готовыми утилитами, электронными ключами например HASP. Если программа очень ценна, то в любом случае, какую бы вы защиту не ставили ее взломают. А все остальные способы защиты ломаются на ура.

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

1. При инсталяции записывается дата инсталяции и ставится метка (типа boolean может быть если true то запускается программа, иначе программа после старта завершает свою работу)
2 Далее при каждом запуске программы либо в файл, либо в реестр вносится текущая дата.
3. При старте программы:
1) проверяется не стоит ли метка о завершении программы, если стоит то завершаем работу
2) прошел ли год с момента первого запуска, если прошел, то вносится запись что год истек и программа в следующем уже по метке о прошествии года завершает свою работу, даже если будет изменена дата.
Взломать можно всё и всегда. Вопрос только во времени и средствах.
HASP тоже научились обходить (пример - 1С).
В общем-то любая защита что-то проверяет. Эту проверку можно либо обойти либо сделать всегда проходящейся. А значит нужно и антиотладочные примочки какието использовать. В общем, как я и говорил, на написание хорошей защиты времени может уйти больше, чем на написание программы.
0
50 / 49 / 16
Регистрация: 12.03.2009
Сообщений: 133
05.08.2009, 11:03
2 Delphin_KKC

Цитата Сообщение от _zz_ Посмотреть сообщение
Самым оптимальным , (если позволяет бюджет) не изобретать велосипед, а воспользоватья готовыми утилитами, электронными ключами например HASP. Если программа очень ценна, то в любом случае, какую бы вы защиту не ставили ее взломают. А все остальные способы защиты ломаются на ура.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.08.2009, 11:24
Цитата Сообщение от Evgeny_1 Посмотреть сообщение
Добрый день!!!
Подскажите пожалуйста, если кто знает.., как запоролить прогу на Delphi, чтобы она работала у других людей без моего участия не больше одного года?!

Заранее спасибо за ответ!
Попробую поставить вопрос несколько шире: а зачем?

А ответ на первоначальный вопрос следующий: никак. Если программой будет пользоваться лох, то способы защиты описаны выше. Но жизньтакова, что лох, если очень надо, всегда может позвать нелоха. Сомневаюсь, что при постановке изначального вопроса, ты создал какую-то мегауникальную программу, которую никто не знает как написать. На крайний случай нанимается студент, который за копейку денег и неделю времени напишет тоже самое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2009, 11:24
Помогаю со студенческими работами здесь

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

Как сравнить год со строкой, где год указан после числа и месяца через точки
Здравствуйте. Мне нужно отобрать даты, где год больше, чем 1984: Сам понимаю, что такой код: if...

запоролить беспроводную сеть
подскажите как поставить пароль на беспроводную сеть, роутер установила, а пароль не получается((( модель роутера CANYON CNP-WF514N1A

Написать программу которая выводит возраст и добавляет к нему год, года, лет. Например 1 год, 12 лет, 42 года
Помогите с программой. При запуске программы выводит надпись: "Введите возраст" (от 100 до 130). После ввода возраста должен выйти в...

Как сделать что бы значения из God выводилось не в отдельную ячейку а рядом с названия столбца год пример год 2018
CTYPE html> <html> <head> <meta charset="UTF-8"> <title>Таблица(Шаблон представления информации о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru