Вы не можете полностью защитить любое приложение (управляемое или нет). Если такие системы, как Playstation и iPad, могут быть взломаны & mdash; где поставщик даже контролирует оборудование & ndash; какая надежда у вашего приложения? К счастью, вы действительно не хотите. На мой взгляд, вам нужно защитить приложение настолько, чтобы кто-то не смог случайно пиратствовать ваш продукт, и не более.
Например, если вы используете лицензию для каждой машины, она не должна работать только при установке ее на новую вторую машину. Вам понадобится хорошее сообщение об ошибке, чтобы предотвратить дополнительные звонки в службу поддержки, но не тратьте дополнительное время на то, чтобы сделать его слишком трудным для обхода, и не ударяйте пользователей по этому поводу.
Другой пример - ограниченное по времени испытание. Даже не беспокойтесь о простых вещах, например, могут ли пользователи просто откатить системные часы. Кто-то, кто делает это, знает, что он нарушает вашу лицензию, и пока пользователь знает , когда они нарушают, вы сделали достаточно.
Вам нужно много делать, потому что пользователи не заботятся о вашей лицензии. Лицензии - это выдуманные вещи, о которых никто не заботится, пока им это не нужно. Никто не читает их, и они действительно не должны. Поэтому лучший способ сообщить пользователю, где находятся границы, - это если стандартное поведение вашего приложения соответствует лицензии. В этом первом случае это означает, что не удалось установить или установить в режиме пробной версии во второй раз. В последнем случае это может означать проверку простой текстовой даты в файле конфигурации. В любом случае, убедитесь, что вы справляетесь с этим элегантно, полезно и с уважением.
Итак, это объясняет, что это значит, делать так много. Но почему бы не пойти дальше? Почему бы не закрыть каждую маленькую дырочку, которую вы можете найти? Ответ состоит из двух частей. Во-первых, если кто-то переступит этический порог в сознательно , нарушив условия вашей лицензии & mdash; даже простым способом & mdash; они также захотят сделать что-то более сложное или опасное, например вытащить ваше приложение с сайта torrent & mdash; и есть определенная опасность, связанная с запуском приложений, загружаемых из ненадежных источников. Сложность усложняет работу этих пользователей и создает проблемы с вашими платящими клиентами. Проще говоря, это может помешать кому-то копаться в вашем приложении и выпустить более полный взлом. Во-вторых, у вас мало глаз, чтобы искать недостатки; у хакеров их много, и у них больше практики их поиска. Вам нужно пропустить только один маленький недостаток, и ваше приложение будет иметь такой же дистрибутив на пиратских сайтах, как если бы вы ничего не делали. Вы должны быть правы каждый раз; им только повезет один раз. Таким образом, требуемые усилия очень высоки, а вероятность любого показателя успеха очень мала.
В конечном счете, если кто-то захочет пиратских вашего приложения (в отличие от простого его использования), и это является их главной целью, они захотят. Вы ничего не можете сделать, чтобы остановить их. Такова природа программного обеспечения; как только файлы, входящие в ваш продукт, будут на компьютере пользователя, они смогут делать с ними все, что пожелают. Это особенно актуально в управляемых средах, таких как Java или .NET , но определенно применимо и к нативному коду. Время на их стороне, и при наличии достаточного количества времени любая цифровая защита может быть взломана.
Поскольку вы не можете остановить пользователей от пиратства вашего продукта, лучше всего привлекать этот класс пользователей таким образом, чтобы он использовал их в ваших интересах. Часто можно заставить их работать на вас, а не против вас. Имея это в виду, независимо от того, какое у вас приложение, вероятно, стоит сохранить бесплатную версию, которая почти полностью функциональна и не имеет срока действия. Разница между ценой даже в 1 доллар США и бесплатной огромна, если только по той причине, что клиент не должен доверять вам свою кредитную карту. Бесплатная версия вашего продукта не только эффективно убьет пиратскую дистрибуцию (зачем рисковать пиратской версией, если вы можете быть легитимной по той же цене?), Но и может значительно расширить вашу аудиторию.
В результате вам может потребоваться увеличить цену за платную версию, чтобы в итоге вместо 2000 пользователей по 20 долларов у вас было 100 000 бесплатных пользователей, из которых 500 готовы заплатить 99 долларов за " профессиональное "издание. Это зарабатывает вам больше денег, чем если бы вы потратили кучу времени, запирая свой продукт. Более того, вы можете привлечь этих бесплатных пользователей и использовать отношения несколькими важными способами.
Одним из них является поддержка. Пессимист воспользовался бы этой возможностью, чтобы пожаловаться на возросшую стоимость поддержки 100 000 бесплатных пользователей, но вместо этого происходит нечто удивительное: ваш продукт становится в значительной степени самостоятельным. Вы видите это все время с большими проектами с открытым исходным кодом, у которых нет денег на расходы на поддержку. Пользователи подойдут и сделают это.
У бесплатных пользователей, как правило, меньше ожиданий от поддержки, и на то есть веские причины. Все, что вам нужно сделать, - пометить бесплатную версию как подходящую для поддержки сообщества и создать для этой цели модерируемый пользователем онлайн-форум. Ваша база знаний службы поддержки генерируется самостоятельно, и опытные пользователи будут помогать тем, кто нуждается в дополнительной поддержке от вашего имени. Что еще более важно, это позволит вам быстрее выявлять и исправлять ошибки, в конечном итоге улучшая качество вашего продукта и снижая общие расходы на поддержку. Раньше это было невозможно, потому что ваша база пользователей была недостаточно велика, но когда вы относитесь к бесплатным пользователям как к клиентам, это может работать очень хорошо.
Еще один отзыв. Наблюдая за своим форумом, вы узнаете важные идеи по улучшению, которые вы никогда не рассматривали иначе. Это может позволить вам в конечном итоге превратить больше бесплатных пользователей в платных и создать более привлекательный продукт, который привлечет еще большую аудиторию.
Наконец, вам нужно подумать о маркетинге. Все эти бесплатные пользователи теперь являются поклонниками, а не противниками, и они будут действовать соответственно. Кроме того, когда придет время выпустить вашу следующую версию, все эти пользователи пройдут через ваш одобренный канал распространения, а не какой-то другой неизвестный механизм. Это означает, что для вашей следующей версии вы начнете общаться с более широкой, заинтересованной и поддерживающей аудиторией.
Лучшие возможности, которые можно зарезервировать для профессиональной версии, - это инструменты, упрощающие корпоративное развертывание и управление. Взломщик не будет рассматривать их как достаточно вескую причину, чтобы взломать его для собственного использования, но для бизнеса, желающего купить 300 лицензий и распространить его по всей компании, это просто необходимо. Конечно, профессиональное издание все равно будет пиратским, но опять же: не переживайте, потому что вы, вероятно, не сможете продать продукт тем пиратам, что бы вы ни делали, так что это не будет стоить вам любого доход.
Хотя психологически может быть трудно отдать свой продукт так много, надеюсь, вы поймете, как это действительно лучший путь. Мало того, это единственный путь в долгосрочной перспективе. Я знаю, что кто-то там думает, что он не хочет делать это таким образом. В конце концов, они просто отлично продавали свой заблокированный продукт за 20 долларов в течение многих лет. Но это очень плохо, потому что если вы не сделаете это таким образом, в конце концов, кто-то другой будет . И их продукт будет таким же хорошим, как ваш, или достаточно близким, чтобы они могли с этим смириться. Внезапно ваши цены выглядят возмутительно, продажи резко падают, и вы ничего не можете сделать. Вы можете выбрать дополнительный средний уровень, если это необходимо, но вряд ли он вам поможет.