Собственно хочу поставить ограничения на программу.
Что бы она работала ровно 30 минут и не секундой больше. Ключ и регистрация не нужна.
Может кто знает как ввести такое ограничение?
Регистрация: 30.12.2009
Сообщений: 11,442
Банально при старте запускать отсчёт, и как только достигается нужное веря программы закрывается.
Регистрация: 17.11.2010
Сообщений: 19,042
В реестре прописывать общее время работы, имя раздела желательно сделать не похожим на имя программы. Но все равно ушлые ребята со временем расколят
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Регистрация: 31.05.2010
Сообщений: 13,964
Установить компонент Timer и время 1800000 мс.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Регистрация: 13.08.2009
Сообщений: 2,581
unit Unit1; interface . implementation . function TrialLimit(Parameter: Pointer): Integer; begin Sleep(30 * 60 * 1000); // 30 минут ExitProcess(0); // или TerminateProcess(GetCurrentProcess, 0); Result := 0; end; procedure Init; var TID: Cardinal; begin BeginThread(nil, 0, TrialLimit, nil, 0, TID); end; initialization Init; end.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
Регистрация: 09.01.2008
Сообщений: 26,238
Зод, хочу предупредить.
Закончились пробных 90 дней Ableton что делать?
такие защиты гарантировано ломаются!
Достаточно найти в коде нужный таймер и задать ему другой интервал (ну, вместо 30 минут — 3000, например. )
Не скажу, что это совсем просто (т.е. нужны будут инструменты, немножко знаний, опыт + время на поиск нужного места в коде). Но в принципе это вполне реализуемо.
Пользователь
Регистрация: 01.09.2011
Сообщений: 44
тоесть вы хотите сказать что можно декомпелировать приложение и внести изменения? delphi приложение можно декомпелировать?
Кое что интерестное ожидает тебя тут.
мир прекрастная штука . как не крути)
Последний раз редактировалось mihali4; 03.11.2011 в 21:11 .
Регистрация: 30.12.2009
Сообщений: 11,442
Для делфи программ существует целый набор программ которые специально созданны для декомпиляции программ написанных на делфи. Там можно декомпилировать и посмотреть, из чего состоит программа(какие компоненты. модули в её составе, посмотеть адреса переменных и т.д. и т.п.) и даже сохранить ПО в dpr и pas файлах(дизасм оттуда никуда не денется).
Форумчанин
Регистрация: 17.03.2009
Сообщений: 318
Serge_Bliznykov все ломается, что ж теперь программы не писать?
Регистрация: 09.01.2008
Сообщений: 26,238
ну, согласен. _почти_ всё (почти это на очень специфические вещи с электронными ключами и сильной криптографией. это тоже ломается, но мы сейчас не об этом).
Писать программы нужно НЕ ЗАВИСИМО от того, ломаются они или нет.
А вот при использовании защиты стоит учитывать слабые места использованного способа.
В данном случае кряк для программы будет изготовить МНОГО проще, чем в случае ключа, которым, например, кодированы важные для работы функции программы. Просто это автору программы полезно будет знать. и всё.
Poker tracker 4 вечный триал в 2021 году
я лично считаю, что при всех своих недостатках, использование готовых протекторов (того же AsProtect’а) — идеальное решение для новичка. Особенно если дополнительно использовать имеющееся в протекторе API + добавить дополнительную (простенькую) самописную защиту в свой код.
Впрочем, соглашусь. Ломается всё. Вопрос только в требуемой для взлома квалификации, наличии инструментов нужных, наличия свободного времени у хакера и, разумеется, мотивации на взлом. Про неуловимого Джо знаете? Почему он такой неуловимый?
Просто защиты с ограничением по времени обычно самые кряконезащищенные.. А в данном случае, задача ещё упрощается тем, что в программе есть таймер, который нужно или задизейблить совсем или сделать нужный интервал.
всё высказанное не является истинной в последней инстанции.
Так, просто информация к размышлению.
Последний раз редактировалось mihali4; 03.11.2011 в 21:11 .
Источник: www.programmersforum.ru
Как сделать триал версию программы
← →
yuger ( 2001-12-17 16:39 ) [0]
Думаю выше сказанный вопрос интересует многих, кто хочет заняться шареваре.
По моему видению проблемы можно сделать так:
1) после инсталляции программа кудато пишет инф. о дате установки (при последующих запусках она эту запись видит и не переписывает).
2) при каждом запуске программа проверяэт зарегистрирована ли она. Ищет введенный сер. код в опр. месте.
3) если не находит или он неверный, то проверяет сколько дней прошло с момента первого запуска.
4) если больше, скажем, 30 дней, то отказывается работать или предлагает зарег.
Вопрос:
Куда нужно спрятать инф. о первом запуске так, чтобы трудно было обнаружить.
Варианты:
—1—
1) В Windowssystem и иже сними (создает како-то файл с «стандартным названием» Com32Srv.dll. 🙂
2) В том же месте пишет в какую-то ini.
Проблемы:
Если прогу запустил пользователь (не админ и не опытный пользователь) в Win2000, то прога не сумеет это сделать.
ТО же касается и Program Files. (у пользователя нету прав).
—2—
Прятать эту инф. в реестре.
Но опять-таки для пользователя доступен только Current_User.
Там не особо найдеш место длля маскировки.
Кроме того при входе в систему под другим пользователем программа
«будет думать», что запущена в первый раз.
Писать в корень как-то некрасиво да и особо негде.
—3—
Писать в саму себя тоже не подходит.
Пользователь сотрет прогу и заинсталлит заново.
Получит еще один испытательный срок.
Важно:
Программа на испытательный срок должна быть ПОЛНОФУНКЦИОНАЛЬНА.
Так что посоветуете в таком случае делать начинаещему шароварщику?
← →
33 ( 2001-12-17 17:13 ) [1]
>Так что посоветуете в таком случае делать начинаещему шароварщику?
Сначала написать стоящую программу.
По поводу даты:
Из приведенного алгоритма вытекает, что ничего не мешает пользователю менять системную дату на дату установки программы и работать сколько
влезет.
————————————
В 5 Delphi было сделанно так: в каталоге программы создавался
шифрованный файл с датой и в реестре в разделе программ
под именем Rainbow так же лежали два шифрованных ключа, связанных
с файлом. При каждом запуске программа переписывала файл и ключи.
И если шла нестыковка ключей с файлами, то сразу «Умирала».
Кроме этого прога отслеживала смену системной даты, в реестре
имеется такой ключ.
И все равно это легко обходилось.
← →
yuger ( 2001-12-18 10:14 ) [2]
Спасибо 33.
Речь идет о уже написанной программе.
Насколько она стоящяя — не мне судить. 🙂
Со сменой даты я собираюсь бороться таким образом:
программа с каждым запуском будет запоминать дату запуска где-то.
также, если она обнаружит, что системная дата меньше запомненой,
то отказ работать. Понятно, что можно и это обходить (перед запуском
менять на одну и ту же дату),но специфика использования программы такова,
что это придется делать слишком часто и на долго.
Да и, если честно говорить, я не собираюсь делать очень сильную защиту.
Насчет делфи 5.
Все это понятно, но проблема остается открытой.
Пользователь не имеет права на запись в Program files.
Я специально поставил триал версию Macrimedia dreamwawer-а.
Я удалал его, чистил реестр, ставил монитор на изменения на диске и в реестре.
Ничего не помогло. Как он, зараза, это делает? Интересно!
← →
gun19456 ( 2001-12-18 11:09 ) [3]
Ну чего Вы привязались к дате!
Любой хакер первое, что делает ищет где прога считывает дату.
Все проще. Меняйте в ini что-то, но не сразу, а после скажем 10 запуска.
Проверяют то в начале и до 10 считать не умеют
← →
Дремучий ( 2001-12-18 22:19 ) [4]
можно ограничивать количество запусков програмы
например 3 раза в день на тридцать дней
или просто 90 раз в месяц.
нет привязки к дате, есть привязка к счетчику,
что на мой взгляд проще.
Источник: delphimaster.net
Триал
На триал-версию программы должно распространяться простое правило. Ее всегда можно открыть, чтобы принять финальное решение о покупке.
На картинке выше неудачный триал Final Cut, программы видеомонтажа. Я поставил ее месяц назад и один раз запустил. Потом что-то меня отвлекло, и больше программу я не открывал.
На праздниках появилось время, сел монтировать видео и снова вспомнил. Думаю, открою, погоняю туда-сюда и, скорее всего, куплю. Но фигушки — неделя триала кончилась. Раньше надо было. Или идешь лесом, или покупаешь кота в мешке.
Очень, очень странная политика! Предположим, я подошел к продавцу, посмотрел товар, но не купил. Подошел повторно, прошу показать еще раз, а мне в ответ — нечего смотреть, или покупай, или проваливай. Сегодня даже на рынке так себя не ведут, это какой-то колхоз. А почему-то в интернет-торговле считается норм.
Моя естественная реакция на такое поведение — идите нах@й, ребята. У других куплю, раз вы такие гордые. Я всего-то хотел пощупать интерфейс еще раз перед тем, как принять решение. Все-таки программа не три доллара стоит, можно было как-то гибче.
Правильно делать так: триал-программа всегда запускается, но работает с ограничениями. Например, Lightworks, программа промышленного видеомонтажа, без покупки лицензии имеет только одно ограничение — не позволяет сгонять проект в разрешении свыше 720 линий. Производитель ничего не теряет: для любителей программа слишком сложна, для профессионалов разрешения 720 недостаточно. Можно работать месяцами, полностью изучить программу перед покупкой.
Другой пример — Wing IDE для разработчиков на Python. По истечении триала программа запускается на 10 минут, после чего сама себя завершает. Это тоже норм, потому что остается возможность ее исследовать.
Редактор Sublime Text время от времени показывает блокирующий алерт. Это не проблема, если запускаешь его раз в месяц. Но сильно раздражает, если используешь его как основной инструмент разработки. Так или иначе, он запускается всегда, и есть возможность подумать.
Если вы причастны к разработке триал-версии продукта, никогда не поступайте как Final Cut. Нельзя разворачивать пользователя по истечению срока. Пользователь не обязан все бросить и посвятить неделю исключительно вашей программе. У него дела, авралы, дедлайны. Программа должна ограничивать не время работы, а возможности: форматы, расширения, объем файлов.
Но запускаться она должна всегда.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Не должна. Авторы программы, на создание которой потрачено много ресурсов, не должны предоставлять любую функциональность бесплатно. Могут, но не должны. Вы же не должны полдня работать бесплатно, да? Но триал намного удобней, если ограничен по времени фактического использования.
Если он на месяц, значит разработчики предусмотрели, что использование месяц каждый день — ок. Значит использовать целый год три дня в месяц — тоже ок, поскольку использует тот же лимит бесплатного времени.
Я поставил программу и ни разу не запускал. Спустя месяц попытался это сделать, но триал кончился. Программа не проработала и часа. В идеале программа должна считать время, которое она отработала. А то, что разработчики не предусмотрели — это лень и колхоз.
Примерно как требовать от пользователя пароль в 20 символов и хранить его в открытом виде.
Именно это я имел ввиду. Сталкивался с нормальной реализацией триала, и это очень удобно — двухнедельную программу я тестировал несколько месяцев с долгими перерывами, не переживая, что она закончится просто потому что «часики тикают».
Источник: grishaev.me