2010-04-27 14 views
18

Мне было интересно, какой самый эффективный способ помешать людям украсть мое приложение (загружая копию .apk онлайн, а не покупая его).Как предотвратить приложение thievery (для приложений Android)?

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

Кто-нибудь это сделал? Я пробовал проверять стили подписей на пакет подписи неподписанной копии, но, похоже, это то же самое - возможно, я делаю что-то неправильно здесь. Я не уверен, действительно ли люди распространят подписанный .apk, и в этом случае я не считаю, что проверка подлинности будет работать с нуля ...

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

ответ

13

Теперь доступно новое лицензирование Google App. Для более глубокой информации читайте об этом в android developer blog.

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

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

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

+1

Я бы определенно изменил это правильный ответ, так как это новое, поддерживающее Google решение для этой конкретной проблемы. –

+1

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

+1

Если вы реализуете это стандартным способом, приложение может получать доступ в Интернет только раз в неделю или около того. Ответ из магазина воспроизведения будет сохранен в кеше. Если пользователь еще некоторое время не открывал ваше приложение и пытается использовать его без сети, он может выйти из строя. Если вам нравятся ваши пользователи, вы можете сэкономить время, когда рынок получил отрицательный ответ и отключить приложение только после того, как x завершится с ошибкой. Это лучше для пользователя, но проще взломать, чтобы получить доступ к пиратскому приложению. – Janusz

1

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

+0

Я действительно не думаю, что эта форма лицензирования возможна, поскольку распространение приложения (наряду с покупкой) обрабатывается через рынок Android, а не мной. –

0

Не оставляйте компьютеры, чтобы кто-то мог украсть ваши приложения.

Или подождите .. Вы имели в виду, что вы не хотите, чтобы другие копировали ваше программное обеспечение? Тогда ... не публиковать его в первую очередь, скорее всего, ваш лучший вариант.

Немного связанная ссылка: http://news.cnet.com/8301-27076_3-20003120-248.html

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

4

Люди, которые достаточно слабы, чтобы использовать пиратские копии вашего приложения для доступа к их DropBox, вероятно, используют DropBox для пиратства в любом случае. Забудьте этих людей. Отпусти их. Да, это огромное количество людей, на которых я держал пари, но давайте посмотрим правде в глаза, эти люди никогда ничего не собирались платить вам. Сосредоточьтесь на тех частях, которые вы можете контролировать, и забыть о других.

Фокус на пользователях Android, которые используют DropBox для своей работы, для своего бизнеса, для своего собственного кода, для своих финансов, для их диссертации и/или для своих частных семейных фотографий. 95% тех людей, которые имеют что-то ценное в своей DropBox, и хотят, чтобы он оставался частным, захотят купить ваше приложение (при условии, что для них это достаточно хорошо).

Позвольте мне использовать эту аналогию:

Когда речь идет о приеме на работу слесаря, чтобы поставить блокировку на ваш дом, вы нанимаете парня, который смотрит часть и берет $ 150 в час, или же вы нанимаете тенистом парень, который готов продать вам украденный замок, чтобы надеть вашу входную дверь?

+2

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

+0

Кроме того, у многих приложений, в том числе и моих собственных, есть расходы, которые увеличиваются с использованием приложения (Мое приложение включало загрузку файлов на Amazon s3 и использование других платных API). Когда люди пиратствуют в моем приложении, это стоит мне денег, даже если они никогда бы не купили его. «Они все равно не купят», мышление не распространяется на ситуацию каждого. – user1023127

2

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

Спасибо за кражу ... Я зарабатываю на жизнь с программированием это приложение. X Dollar не повредит вам, и я мог бы поужинать и продолжить делать большие обновления для вас.

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

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

+0

Или вы можете напугать их не пиратством с таким сообщением: «Ваша информация была отправлена ​​в полицию, которая теперь будет внимательно следить за вашей сетевой деятельностью и соответственно реагировать, если нарушаются какие-либо законы» – jcw

5

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

Использование функции обратного вызова интеграции для отправки информации о покупке на ваш собственный сервер, вы можете использовать PHP для отправки уникального идентификатора (регистрационного кода) на покупку по электронной почте (в режиме реального времени, когда обратный вызов отправляется из Google во время покупки. пользователь использует эту электронную почту, чтобы зарегистрировать программное обеспечение, используя уникальный идентификатор, который затем связывается с их андроидом ID (или Google имя пользователя учетной записи) и программное обеспечение «активировано» и гарантированы быть законным.

Очевидные вопросы

  • Почему это подходящее решение, когда пользователю требуется прочитать электронную почту? Наш рынок - это те люди, которые способны покупать приложение с помощью устройства Android. Используя устройство Android, подразумевается, что у пользователя есть учетная запись google, которая подразумевает, что они знают, как использовать электронную почту.

  • Как использовать электронное письмо с уникальным идентификатором с моим приложением? Создайте в своем приложении обработчик содержимого, который обрабатывает что-то вроде «myactivator: // uniqueid-or-something», которое заставляет ваше приложение взаимодействовать с вашим внутренним сервером, который сохраняет вкладки при активациях. Вставьте это как ссылку в электронное письмо, на которое пользователь может нажать.

  • Как я могу создать уникальный идентификатор? Я как-нибудь собираюсь использовать электронную почту - я уверен, что Google уже сделал ее уникальной, чтобы запретить любой возможный метод продажи контактной информации.

  • Что относительно людей, которые уже приобрели программное обеспечение? Здесь много вариантов - никто не идеален или не страшен.

    • Отправить электронную почту для всех предыдущих покупателей
    • Разрешить пользователям активировать, введя их номер заказа (можно получить, войдя в checkout.google.com.

Зачем ?

Потому что некоторые из нас поставили лот времени в приложениях и сказали: «вы ould просто принять пиратство "- это пощечина.

0

Существует новый инструмент в дикой природе, которая, кажется, хорошо, чтобы быть правдой:

Automatic Application Licensing из Keyes Lab.

Я еще не пробовал, но если это работает, это похоже на то, что вы хотите использовать в своих дорогостоящих Android-приложениях.

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