Как предотвратить воровство приложений (специфично для приложений Android)?

Мне было интересно, что является наиболее эффективным способом предотвращения кражи моего приложения людьми (скачивая копию.apk онлайн, а не покупая ее).

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

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

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

8 ответов

Решение

Теперь доступно новое лицензирование Google App. Более подробную информацию читайте в блоге разработчиков Android.

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

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

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

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

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

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

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

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

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

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

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

Зачем беспокоиться?

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

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

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

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

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

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

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

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

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

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

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

Автоматическое лицензирование приложений от Keyes Lab.

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

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

У меня такая же проблема. Недавно я нашел несколько платных приложений, доступных для бесплатного скачивания на этом сайте: https://dlandroid.com/

Я попросил их удалить APK моего приложения, но я уверен, что есть много других подобных сайтов. Предположительно, у них есть рутированный телефон, который получает одну действительную копию приложения из Google Play, а затем загружает ее на свой веб-сайт для распространения среди всех и вся бесплатно.

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

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

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

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

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

Другие вопросы по тегам