Подтвердить что ты не робот

Как защитить приложение от пиратства

Я разрабатываю приложение для Android и планирую его опубликовать (платное приложение). Я слышал, что очень легко пиратские приложения для Android (гораздо проще, чем iphone). Мне было интересно узнать о своем опыте или о том, что вы знаете, как повысить безопасность моего приложения? Я знаю, что я никогда не смогу получить его на 100%, но я хочу, чтобы людям было сложно пиратствовать или распространять его незаконно Любые идеи, впечатления, комментарии, которыми вы можете поделиться?

4b9b3361

Ответ 1

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

Во-первых, в этой статье описывается, как перепроектировать приложение Android, распаковывая скомпилированный код и просматривая исходный код. Вы не сможете заблокировать это от своего приложения. Период. Кто-то с завещанием всегда может просмотреть ваш исходный код, если он получит копию вашего apk (легко доступен на корневом телефоне). Хорошей новостью является то, что вы можете запутать важные фрагменты своего кода, что затрудняет обратное проектирование. Proguard - это инструмент, предоставляемый Android, который позволяет вам запутывать (сделать более трудным для чтения) ваш код во время упаковки. Однако, чтобы ваш важный код не читался, вам нужно переместить все уязвимые методы или переменные в файл, который не является Activity, Service или BroadcastReceiver. Для получения полной информации ознакомьтесь с документацией.

Чтобы повторно защитить незаконную копию и распространение вашего приложения, Google Play предоставляет некоторые варианты лицензирования. К сожалению, LVL также не совсем безопасен. Подробный HOW-TO для взлома (pre-Google Play) доступен здесь.

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

В целом, лучший способ действительно защитить ваше приложение от пиратства - правильно настроить и использовать Proguard, Google Play Licensure и подписать окончательный apk с очень безопасным лицензионным ключом.

Ответ 2

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

Проверка тампера

  • Приложение-установщик. Используйте диспетчер пакетов, чтобы убедиться, что приложение для установки является магазином приложений play/amazon.
  • Проверка эмулятора. Проверьте свойства системы для контрольных знаков, которые приложение запускается на эмуляторе, который вне dev может указывать на атаку/фальсификацию.
  • Отладочная проверка. Используйте диспетчер пакетов для проверки флагов отладки, это должно быть отключено в продукте, поэтому может указывать на атаку/фальсификацию.
  • Проверка сертификата подписи - используйте диспетчер пакетов, чтобы проверить, что приложение подписано с вашим сертификатом разработчика (это было бы нарушено, если кто-то распаковал и переупаковал/ушел в отставку)

update: после ответа на этот вопрос я написал более подробную статью

Ответ 3

ознакомьтесь с концепцией лицензирования Google Play.

http://developer.android.com/guide/market/licensing/index.html

это ваш лучший выбор.

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