Как мне внедрить функцию «самоуничтожения» в бесплатную пробную версию моего программного обеспечения?


52

Существует постоянный аргумент о бесплатной пробной версии по сравнению с моделью freemium (то есть бесплатной версией их программного обеспечения с ограниченными и / или урезанными функциями), позволяющей потенциальным клиентам и пользователям тестировать свой продукт. На основании моих исследований я могу сделать вывод, что бесплатная пробная версия - это способ как для удобства пользователей, использующих программное обеспечение, так и для вендора как с точки зрения продаж, так и максимального использования. Существует много факторов, влияющих на бесплатное пробное программное обеспечение, которые могут значительно увеличить использование пользователем, например продолжительность бесплатного пробного использования.

Одно из ключевых слов, которое повторяется в моем исследовании «freemium», - «разочарование». Многие люди решили удалить программное обеспечение вместо того, чтобы использовать часть программного обеспечения, где некоторые функции были для них недоступны. В то же время у этих пользователей никогда не было возможности использовать «платные» функции. Без ведома и скрытые от собственных поставщиков, которые продают программное обеспечение, они не знают и не могут знать, какие преимущества принесут функции Pro. Без предварительного использования пользователь не будет знать, что ему что-то нужно. Что подводит меня к следующему пункту бесплатной пробной модели.

Некоторые мнения пользователей бесплатной пробной версии: «Я не могу представить себе использование этого программного обеспечения без функций Pro». Это восходит к тому, что «пользователь не знает, что ему что-то нужно, пока он сначала не поймет, что у него есть». Те, у кого было 14 дней, чтобы использовать функции «полной» версии, сказали, что не могут себе представить, что они не имеют или не используют предоставляемые там функции. Поэтому, когда прошло четырнадцать дней, они с большей вероятностью раздали деньги, чем те, кто никогда не испытывал полных возможностей. Продолжительность бесплатной пробной версии также является важным фактором, создающим неизгладимое впечатление на пользователей. В ходе эксперимента, проведенного Visual Website Optimizer, они заметили, что для 14-дневной бесплатной пробной версии по сравнению с 30-дневной бесплатной пробной версией, в то время как количество регистраций и установок было одинаковым, использование 14-дневной пробной версии увеличилось на 102%.

Еще один очень важный момент, о котором следует упомянуть, это то, что «предложение полезной и полностью функциональной бесплатной версии продукта» ОЧЕНЬ ВАЖНО. Полностью функциональные бесплатные пробные версии эффективны для получения освещения в СМИ, и эта реклама для новых поставщиков программного обеспечения и / или программного обеспечения довольно важна.

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

Еще одна важная особенность нашего программного обеспечения - это потребность в телеметрических данных, то есть количественных и полных данных о том, как пользователь использует наше программное обеспечение. Некоторые статистические данные об использовании могут попасть в серую правовую зону, поскольку законы различаются в зависимости от местоположения в Соединенных Штатах и ​​мире. Одним из способов борьбы с этой юридической проблемой является наличие возможности подписки для сбора анонимной статистики использования. Отказ от подписки означал бы предоставление пользователю возможности отключить сбор статистики, и в то же время пользователь должен очень хорошо знать, что делает сбор анонимной информации об использовании. Важно, чтобы он ПОЗНАЛ пользователю, какие данные будут собираться, что «мы» будем с ним делать, и облегчать его отключение в любое время, в том числе позволяя ему передумать включать или выключать его. Для получения более подробной статистики, например отслеживания отдельных действий пользователей, это может привести к юридическим проблемам. Eclipse IDE регистрирует подробную статистику использования, но делает это с полного согласия пользователя. Возможно, нам придется подготовить форму согласия с нашей юридической командой.

Сбор информации об использовании Eclipse собирает эту информацию: 1. Плагины, запускаемые системой. 2. Команды, доступные через сочетания клавиш и действия, вызываемые через меню или панели инструментов. 3. При «просмотре» редактору уделяется внимание. 4. Системная информация, такая как версия используемого программного обеспечения и используемая операционная система. 5. Описание внутренних ошибок.

Аварийная кнопка

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

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


Я заинтересован во внедрении бесплатной пробной версии для моего существующего программного обеспечения. Я планирую провести испытание в течение 14 дней. На 14-й день мое программное обеспечение предложит пользователю либо заплатить за платную версию, либо не сможет ее использовать. Бесплатная пробная версия полностью разблокирована, то есть все платные функции есть.

Тем не менее, моя дилемма заключается в том, чтобы «наилучшим» способом реализовать то, что нужно сделать для решения в конце испытания. Я удаляю жизненно важные DLL? Имейте систему аутентификации пользователя после установки или использования? Зашифруйте начальное время и дату использования с солью, и если это недопустимая дата (AKA они пытаются изменить свою начальную дату), отключить программное обеспечение?

Мне интересно знать, каковы некоторые эффективные меры по отключению программного обеспечения.


9
Поделиться своими исследованиями помогает всем. Расскажите нам, что вы пробовали и почему это не соответствует вашим потребностям. Это свидетельствует о том, что вы потратили время, чтобы попытаться помочь себе, избавляет нас от повторения очевидных ответов и, прежде всего, помогает получить более конкретный и актуальный ответ. Также см. Как спросить
комнат

2
Вы не смогли определить два момента: - От кого вы хотите защитить? - Что определяет «100% кирпич»? Я предлагаю вам отказаться от этого последнего требования в любом случае. Перезаписывать свой собственный исполняемый файл, заполнять базу мусором? - Они просто копируют из резервной копии и снова готовы к работе.
Ян Догген

@gnat Нет проблем, я поделюсь исследованиями freemium и free trial.
theGreenCabbage

@gnat Я добавил свои исследования здесь.
theGreenCabbage

13
Одна вещь, которая не была упомянута. Если вы продаете что-то интересное для широкой публики (в частности, игры) (не эзотерическое, специальное программное обеспечение), удобство покупки является КРИТИЧЕСКИМ . Это, ИМХО, одна из главных причин, почему платформы, такие как Steam (игровое программное обеспечение), настолько успешны. Вы должны принять чертовски близко к любой платежной системе. Если мне придется зарегистрироваться, запросить расценки или заполнить мой адрес для чего-то, что не имеет физического компонента, я вряд ли буду беспокоиться. Вы должны убедиться, что покупка - это меньше работы, чем пиратство.
Фальшивое имя

Ответы:


92

Здесь есть две проблемы - одна проблема программирования, а другая проблема бизнеса. Во-вторых, спрашивать программистов о бизнес-анализе - это то же самое, что вы можете получить от местного водителя автобуса; это значит, что это может быть хорошо или ужасно, но вы не спрашиваете экспертов, поэтому не придавайте никакого значения любому из них. (Кроме того, один из моих водителей автобусов часто дает мне хорошие идеи.)

Но что касается проблемы программирования, то ее недостатком является то, что большинству людей не нравится идея начать с этого. Для этого есть много веских причин, но они здесь не очень важны. К сожалению, мы также являемся в некотором смысле ужасной группой людей, которых можно спросить, потому что в силу нашей позиции и знаний большинство из нас чертовски хорошо разбираются в программном обеспечении для пиратства до такой степени, что мы считаем бессмысленным пытаться вообще применять пробные меры. !

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

Итак, начните где-нибудь. Цель не является правильным ответом, потому что я могу только на 100% гарантировать одно - вы не собираетесь начинать с правильного ответа. Но начинать надо.

Дайте вашим клиентам поцелуй

Кроме того, «будь проще, глупый». Или из методологии программирования: «попробуй самое простое, что могло бы сработать». Тогда иди оттуда.

Итак, при установке получите дату. Сохраните это. Получите ваши данные об установке и использовании, и наслаждайтесь теплом, которое может принести анализ данных. Отключите любую часть программного обеспечения, которую вы хотите, когда истечет пробная версия - я предлагаю if (trial_expired()). Затем отрегулируйте.

Прежде всего, получите хорошие данные. Ожидаете ли вы в будущем обновления для своего программного обеспечения? Тогда, если кто-то пытается победить v1.0, не беспокойтесь об этом.

Проще всего удалить программное обеспечение, а затем переустановить его. Новый пробный период (потому что ваша программа удалила эту старую дату). Вы заботитесь? Если скоро будет обновлен v1.0, я настоятельно рекомендую вам узнать, случится ли это, но не пытайтесь их остановить (пока). Это как люди, которые берут 2 минуты, а не 1 - это просто мята, отпусти. В любом случае, они, вероятно, не собирались платить за это (пока).

Как? Что ж, в Windows это обычно делалось путем помещения случайных осиротевших ключей в реестр и странно именованных файлов в различных общих установочных каталогах. Ваш установщик явно сделает вид, что их не существует, и просто оставит их там. Уровень сложности работы с компьютером, который требуется для победы над этим, гораздо больше, чем просто удаление.

Но если вы не пытаетесь помешать кому-то переустановить, вы получаете данные, которые вам понадобятся. Здесь они не грабят ваш магазин - они дают вам ценную возможность изучить потенциального покупателя. Используйте его, чтобы адаптировать свои маркетинговые, программные подсказки, почтовые кампании, «специальные предложения». Я попытался бы обнаружить событие, а затем, через день, отправив им ключ, который они могли бы ввести в программу, чтобы продлить пробную версию до следующего месяца. Вы можете найти метод, который превращает их в платящих клиентов, или нет; нет способа узнать заранее!

Это кажется тривиальным, но давайте посмотрим правде в глаза - вам действительно нужно что-то большее, чем это? Если вы собираете данные, это стоит денег для вас. Вы, вероятно, захотите потратить время на то, чтобы убедиться, что электронная почта хороша, разрабатывая программный обмен сообщениями, который вы можете обновлять, чтобы направлять новых пользователей (невидимые рекламные объявления, на самом деле), переписывать рекламу своего приложения, выискивать ошибки, которые могут помешать любому здравомыслящему человеку. от покупки вашего программного обеспечения и т. д.

Но ключевым моментом здесь является то, что вы честно и ясно общаетесь со всеми потенциальными клиентами - если вы хотите этого, вы должны заплатить нам. То, что вы (невидимо) великодушны, не означает, что это бесплатное ПО - вы просто будете умны в этом и не отгоните клиентов, потому что они не заключили сделку в течение первых двух недель.

Если вы думаете об этом, эти люди приходят в ваш магазин, чтобы по-настоящему осмотреть ваш продукт. Они проходят тест-драйв, но это вам (почти) ничего не стоит. Ни один успешный магазин не получил такой путь, вытеснив покупателей, которые еще не были готовы покупать! Тем не менее, мы все знаем, если вы можете получить что-то бесплатно, навсегда, зачем платить? Так что используйте лучшее из обоих миров.

С каждым вашим шагом вы будете работать с фильтром, и если у вас хорошее программное обеспечение, вы будете делать преобразования с каждым шагом. Мое простое предложение:

1) 14-дневная бесплатная пробная версия

2) Продлить бесплатную пробную версию, без вопросов

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

4) Вы уверены, что эти люди, которые все еще используют ваше программное обеспечение, не будут покупать его? Найдите способ соблазнить их - или, по крайней мере, попытайтесь выжать из них больше информации о том, что вы можете сделать, чтобы заставить других купить. Возможно, разрешите им «запросить» расширение через форму, которую любезно предоставит ваш торговый персонал, а затем используют эту информацию, чтобы узнать, смогут ли они справиться с любыми возражениями, которые могут возникнуть у вас при покупке вашего программного обеспечения.

Что, если этот пользователь оценивает его для использования во всем своем отделе? Если встреча по бюджету состоится в следующем месяце, действительно ли вы хотите, чтобы они не могли использовать программное обеспечение до тех пор?

5) Может быть, вы отрежете их сейчас ... и, возможно, пригласите их на специальное предложение через неделю со скидкой. Возможно, нет. Может быть, вы предлагаете продлить, чтобы дать окончательное продление.

Эти люди не должны вам денег, поэтому относитесь к ним как к потенциальным будущим клиентам, а не к ворам, халявщикам или людям, которым необходимо оплатить счет или отключить их обслуживание. Все ненавидят коллекционеров, так что не ведите себя так.

Программно, давайте посмотрим правде в глаза - это на самом деле не сложно. Используйте потерянные файлы, чтобы отслеживать даты. Если вам нужна действующая учетная запись, например, через iTunes, это намного проще. Если это не требуется, то я бы вообще предложил вам не требовать его для первой установки - никогда не отворачивайте людей от первой версии, потому что они не хотят заполнять глупые формы. Люди ненавидят формы! И они не знают вашего программного обеспечения, так зачем платить, чтобы заполнить форму, если они даже не знают, работает ли ваше приложение?

На шаге 2 я получу регистрацию / письмо для продления. Опять же, программирование это тривиально.

3) Через 30 дней мне, вероятно, потребуется какое-то поведение «телефон домой». Если люди собираются взломать это - как они это делают - поздравляю-чертовски! Вы, должно быть, становитесь довольно популярным. Но не волнуйтесь, если это не видеоигра, люди, вероятно, не заботятся о ней, поэтому просто измените свой код в следующей версии и верните их на чертежную доску.

TL; DR;

# 1 Не решайте проблему, которой у вас на самом деле нет (вы еще не Adobe - DRM может быть простым и эффективным, если вы не задумываетесь над этим). # 2 Не спрашивайте программиста, когда вам нужно спросить маркетолога, бизнес-аналитика или продавца. # 3 Относитесь к своим клиентам как к людям, которые могут дать вам жизнь, а не как к людям, которые должны вам деньги, и особенно к ворам. # 4 DRM действительно, действительно, легко. Только не думайте, что вы остановите людей от использования вашего программного обеспечения, которые почти наверняка никогда, никогда, никогда не дадут вам денег ... по крайней мере, не сегодня.

  • Я купил программное обеспечение, которое я пират, много лет спустя. Так что не надо бесить будущих клиентов тоже.

3
Спасибо за ответ. Этот ответ дал мне больше понимания, чем тот, за который проголосовали больше, чем ваш, потому что он дал больше решения, чем сказал мне: «Это невозможно, просто создайте хороший продукт», что, честно говоря, было не тем, о чем я просил.
theGreenCabbage

37
+1 I have bought software I've pirated- больше раз, чем я могу сосчитать.
WernerCD

1
+1But as for a programming problem, the downside is that it seems most people don't like the idea to start with. There's lots of good reasons for this, but they aren't really important here. Sadly, we are also in some ways a terrible group of people to ask, because by virtue of our position and knowledge most of us are pretty darn good at pirating software to the point that we think it pointless to try to implement trial measures at all!
математический чиллер

2
Да, +1 к этому заключительному заявлению здесь тоже. Я часто использую пиратское программное обеспечение, чтобы использовать его какое-то время без каких-либо назойливых сообщений «пожалуйста, купите лицензию», или, что еще хуже, отключенных функций или пробной блокировки после слишком короткого периода времени. Через несколько недель или месяцев, если мне это понравится, я всегда буду платить за лицензию из-за этой нытье, называемой совестью (и мне также нравится поддерживать хорошие компании или хороших независимых разработчиков, как это иногда бывает). И если мне не понравится программное обеспечение, я перестану его использовать, и никто на самом деле ничего не потеряет - я все равно никогда не стану платным клиентом.
Бен Ли

1
фантастический ответ! очень хорошая перспектива, я хотел бы видеть больше компаний, принимающих
Бернардо Пирес

58

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

Во-первых, вы можете забыть все об испорченной локальной установке. Пока оригинальный установщик все еще существует (или может быть скопирован, или повторно загружен), это не что иное, как удар скорости. Даже размещение чего-то в системных настройках очень мало значит, когда пользователь может установить на ВМ, а затем выполнить резервное копирование и восстановить весь образ ВМ.

Следующий очевидный шаг - онлайн-аутентификация: настройте сервер и заставляйте программу «звонить домой» каждый раз, когда она начинает проверять учетные данные. Это тоже не работает. Во-первых, вы сталкиваетесь с очевидной (и крайне разочаровывающей) проблемой ложных негативов, когда сервер недоступен или недоступен по какой-либо причине, или имеет некоторые проблемы в программном обеспечении. И вы не можете заставить программное обеспечение просто проверять пользователя автоматически, если оно не достигает сервера, или тривиально обойти аутентификацию с помощью нескольких сетевых трюков, или просто использовать его на компьютере с включенным Wi-Fi. выкл. (И, конечно же, это означает, что люди, пытающиеся законно использовать его по уважительной причине отсутствия Wi-Fi-соединения, например, при переносе ноутбука с собой в автобус, будут заблокированы. Это никого не заставит нравится твоя программа.)

Другая проблема с онлайн-аутентификацией заключается в том, что в конце она сводится к логическому значению где-то в вашем коде. Куда-то он звонит, AuthenticateUser()и если он возвращается True, пользователь находится внутри, и если он возвращается False, они заблокированы. И независимо от того, что вы делаете, чтобы зашифровать, запутать или скрыть код, в конце концов, он сводится к тому простому факту, что если компьютер может прочитать его в какой-то момент, то может и программист. Кто-то где-то собирается создать трещину, которая AuthenticateUserвсегда возвращается True, и они разместят ее в Интернете.

Фундаментальная проблема криптографии может быть описана так: «Алиса хочет отправить письмо Бобу, но Чарли не сможет прочитать его, даже если оно попадет в его руки». Проблема с тем, что вы хотите, состоит в том, что Боб и Чарли - один и тот же человек, что делает вашу цель невозможной.

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


8
Отличный ответ и очень информативный! Я также хотел бы сказать, что вы можете выпускать регулярные обновления (функции, а не просто «исправления»), которые позволят пользователю аутентифицироваться, чтобы получить их. Если вы создадите действительно хорошие обновления, пользователи не будут беспокоиться о том, что они не смогут получать ваши обновления.
L_7337

1
+1 для краткости. Вы должны выделить первую строку и поставить горизонтальный разрыв под первым абзацем, потому что 95% того, что нужно сказать, существует прямо там.
Джимми Хоффа

2
Когда вы говорите «успешные результаты», я полагаю, что вы имеете в виду, что никто не создал пробную версию программного обеспечения, которая содержит весь код полной версии, который абсолютно невозможно взломать для использования в качестве полной версии. Что, если успех определяется как создание пробного программного обеспечения, которое ограничивает время использования программного обеспечения для 95% его пользователей (тех, которые прилагают мало усилий или не пытаются обмануть) и приводит к 5% -ному уровню покупок? Конечно, это было достигнуто раньше.
псевдокодер

18

Просто мои 2 ¢.

100% надежное самоуничтожение невозможно. Всегда будет изощренный способ взломать вашу защиту.

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

Если бы я был на вашем месте, я бы постарался, чтобы мое программное обеспечение было: (1) популярным, чтобы все заинтересованные по крайней мере пробовали его, и (2) по разумной цене, чтобы желающие заплатить могли его купить, и вы обратились прибыль. Остальные пользователи могут поиграть с просроченными испытаниями в свое удовольствие: они все равно не купили бы его, но они помогают популярности и предоставляют больше потенциальных сотрудников для компаний, которые фактически покупают ваше программное обеспечение.

Я полагаю, что целевой рынок для плагина Revit состоит из архитекторов, строительных подрядчиков, дизайнеров, всех людей, работающих с относительно крупными суммами за контракт, и без избытка свободного времени или компьютерных знаний низкого уровня.

Поэтому убедитесь, что ваша просроченная пробная версия в достаточной степени раздражает их, не нарушая ничего (иначе они вас возненавидят). Люди, которым нужна проделанная работа, в конечном итоге уступят и заплатят [разумную] цену.

Несколько идей:

  • Сделайте пробную версию быстро (и чисто) удалите себя по истечении срока. Переустановка должна быть возможной, чтобы пользователи могли видеть свою работу нетронутой, а вскоре после этого последовала другая автоматическая деинсталляция.
  • Пусть вывод версии с истекшим сроком действия содержит пометку или текст с надписью «Сделано с истекшей пробной версией [вашего программного обеспечения]». Серьезный пользователь не будет показывать такой вывод клиенту. (И если он, опять же, он слишком дешев, чтобы заплатить за ваше программное обеспечение в любом случае).
  • Сделайте пробную версию с истекшим сроком действия отображать окна сообщений в случайные моменты времени, предупреждая, что пробная версия истекла и давая ссылку на полную версию. Такие вещи нарушают рабочий процесс настолько, чтобы сделать обновление стоящим для серьезного пользователя.

Любая комбинация обычных уловок может быть применена, чтобы пометить компьютер как пробную версию с истекшим сроком действия: загадочные ключи реестра, загадочные файлы в случайных местах (не забудьте восстановить временную метку, если вы изменили их), скрывая временные метки в несвязанных графических файлах или других формы стеганографии и др.

Конечно, если пользователь, например, переустановит ОС, он снова получит бесплатный пробный период. Не берите в голову: серьезный клиент вряд ли прибегнет к этому. Конечно, эта схема в конечном итоге будет взломана; к тому времени убедитесь, что ваше программное обеспечение достаточно популярно, и вы можете предложить обновление с привлекательными функциями и другой схемой защиты.

В качестве одного из примеров очень удачного «неудобства» я бы выбрал Balsamiq Mockups. Вы можете использовать их программное обеспечение бесплатно (в Интернете) с некоторыми ограниченными функциями, включая сохранение вашей работы. Работу можно «экспортировать» и «импортировать» обратно с некоторыми хлопотами. То есть любой ученик старшей школы, который хочет играть с бесплатной, почти полностью функциональной версией, может сделать это, и даже может сделать некоторую работу. Студент все равно не купит. Но серьезный дизайнер, который ценит свое время и удобство, купит его.

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


Надеюсь, теперь стало понятнее. Идея состоит в том, чтобы «пусть все попробуют, и действительно заинтересованные заплатят».
9000

5

Это не сложно сделать. Это действительно зависит от того, сколько усилий вы хотите приложить к этому.

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

Как упомянул один из других авторов, цель заключается в том, чтобы усилия, затраченные на обход схемы пробной версии, превышали затраты времени и усилий по сравнению с затратами на приобретение программного обеспечения. Выделенные «пираты» просто загрузят предварительно взломанные версии вашего программного обеспечения с помощью BitTorrent . Не беспокойтесь о них, так как они все равно не будут клиентами. Приведенные ниже подходы использовались бесчисленными компаниями-разработчиками программного обеспечения на протяжении десятилетий, и до тех пор, пока вы не ограничены представлением о том, что такие системы должны быть теоретически совершенными, вы обнаружите, что они достаточно хорошо работают в реальном мире.

На самом простом уровне вы могли бы просто сохранить «окно» даты начала / окончания даты в реестре (зашифрованное). Каждый раз, когда программа запускается, вы проверяете, что системное время находится между этими двумя датами, и обновляете компонент 'start' этой даты. Это не позволяет обычному пользователю просто установить часы назад, чтобы разрешить доступ к пробной версии.

Вы можете расширить это, отслеживая это временное окно в нескольких местах (как в реестре, так и в папке данных вашего приложения) и следя за тем, чтобы они совпадали при каждом запуске. Это не позволяет людям копаться в записях - они должны точно знать, где они находятся и как расшифровывать / шифровать данные.

Существует также ряд других способов ужесточения, с которыми, я уверен, вы столкнетесь, когда начнете разработку пробной функциональности.

Если вы не хотите делать все это самостоятельно, существует довольно много сторонних библиотек, которые предоставляют такую ​​функциональность.

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


Любопытно, почему это получило бы отрицательную оценку, поскольку я успешно использовал эту технику в течение многих лет в коммерческом программном обеспечении.
GrandmasterB

Почему этот ответ был отвергнут? Я хотел бы увидеть обоснование.
theGreenCabbage

Можете ли вы рассказать мне больше о том, как вы это реализовали и насколько хорошо это работает? Что вы делали, когда нарушается условие изменения даты? Это "отключить" или "убить" функции / самого приложения?
theGreenCabbage

2
Это было бы побеждено, просто установив программу на новую машину / ВМ, когда истекает срок действия оригинала.
Дэн Лайонс

7
Я высказался против фактической достоверности, потому что вы утверждали, что что-то невозможное на самом деле «не сложно сделать».
Мейсон Уилер

1

Это зависит от того, насколько трудно вы хотите, чтобы ваши потенциальные клиенты обходили эти функции самоотключения (звучит лучше, чем «самоуничтожение»). Предполагая, что ваши потенциальные клиенты не будут пытаться манипулировать самим кодом программы (что некоторые из них попытаются, поверьте мне), у вас есть следующие варианты:

  • храните начальное время даты где-то (скрыто) на компьютере, на котором установлено ваше программное обеспечение: это имеет тот недостаток, что ваши клиенты могут легко обойти его, например, установив вашу программу на виртуальную машину и деинсталлировав ее после пробного периода, сброс виртуальной машины в исходное состояние

  • убедитесь, что каждая загруженная копия вашей программы имеет отдельное жестко закодированное время загрузки, которое где-то скрыто в двоичном коде программы. Это потребует от вас гораздо больше административных усилий, и вы по-прежнему не можете быть уверены, что один и тот же человек не загрузит новую копию программы с вашего сервера после пробного периода (возможно, с использованием другой идентификационной информации)

  • доставить пробную версию только с «ключом», где хранится конец пробного периода. Это будет возможно только для программ с небольшим количеством потенциальных клиентов и ценой, намного превышающей цену ключа.

  • сделать это веб-приложением или его частями, или просто приложением, подключенным к сети. В этом случае вы можете сохранить начальную дату на своем сервере, но вам придется идентифицировать и различать людей, которые используют ваше программное обеспечение (например, путем установки файлов cookie или создания входа в систему). Но опять же, вы не можете быть на 100% уверены, что люди не меняют свою личность.


«ты облажался», «ты облажался» и «ты очень облажался»? Я не чувствую, что это дает какое-либо реальное решение. Почему бы не модель DRM, где вам необходимо войти в систему, чтобы использовать программу, а дата хранится на стороне сервера?
Элиас

2
@Elias Программное обеспечение, которое я создаю, представляет собой комплексный плагин для анализа материалов для Revit, который вскоре будет внедрен вместе с собственным магазином приложений Autodesk. В настоящее время я не уверен, какой тип телеметрии, контроля или информации о пользователях нам предоставит магазин приложений Autodesk, поэтому, имея веб-аутентификацию при установке / использовании, я не думаю, что она реализуема.
theGreenCabbage

1
@Elias: спасибо за подсказку, но «вход в систему» ​​на сервере означает проверку личности, и идентичности могут быть изменены.
Док Браун

@DocBrown, они могут быть изменены в определенных ситуациях, но я предполагаю, что с помощью Revit \ Autodesk's Store Store для каждого пользователя этого продукта существует уникальный логин. Хотя, основываясь на комментарии GreenCabbage, вполне возможно, что эти данные вообще недоступны, что делает мой исходный комментарий ложным.
Элиас

0

Что бы вы ни делали, очень тщательно проверяйте, что происходит после истечения срока годности. Однажды я работал в компании, которая распространяла программное обеспечение с пробной схемой, очень похожей на ту, которую вы описываете. Разница была в том, что истечение срока было фиксированной датой в будущем.

Мы отказались от этой схемы сразу после того, как получили массу звонков от недовольных клиентов, когда их законно купленные версии также перестали работать в эту дату.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.