Я разрабатываю приложение для Android и планирую опубликовать его (платное приложение). Я слышал, что приложения для Android очень легко пиратить (гораздо проще, чем для iphone). Из вашего опыта или того, что вы знаете, мне было интересно, как можно повысить безопасность моего приложения? Я знаю, что никогда не смогу получить его на 100% безопасным, но я хочу, чтобы людям было труднее его пиратствовать или распространять нелегально. Есть идеи, опыт, комментарии, которыми вы можете поделиться?
Как защитить мое приложение от пиратства
Ответы (3)
Я выпустил бесплатное приложение для защиты от вредоносных программ для Android, и убедиться, что никто не взломал его, было необходимо для его успеха. Самые большие угрозы для приложения на Android Market включают утечку исходного кода, копирование/распространение платных приложений и изменение ключей. Я объясню каждый ниже и способ их решения.
Во-первых, в этой статье описывается, как реконструировать приложение Android путем распаковки скомпилированный код и просмотр исходного кода. Вы не сможете заблокировать это от вашего приложения. Период. Кто-то с желанием всегда может просмотреть ваш исходный код, если он получит копию вашего apk (легко доступную на рутированном телефоне). Хорошей новостью является то, что вы можете запутать важные части вашего кода, что усложнит обратный инжиниринг. Proguard – это инструмент, предоставляемый Android, который позволяет запутывать (усложнять чтение) код во время упаковка. Однако, чтобы предотвратить чтение вашего важного кода, вам необходимо переместить все уязвимые методы или переменные в файл, который не является Activity
, Service
или BroadcastReceiver
. Для получения полной информации прочитайте документацию.
Для защиты от незаконного копирования и распространения вашего приложения Google Play предоставляет несколько вариантов лицензирования. К сожалению, LVL тоже не совсем безопасен. Подробное HOW-TO, как взломать его (до Google Play), доступно здесь< /а>.
Наконец, документ, указанный выше, а также многочисленные научные статьи и онлайн-блоги описывают, как после утечки исходного кода (или даже запутанного исходного кода) можно просто добавить немного своего собственного вредоносного кода, отказаться от приложения и опубликовать его на Android Market. Хорошей новостью здесь является то, что, если ваш пароль лицензионного ключа Android не может быть легко угадан, или если вы передадите его кому-то другому, злоумышленник не сможет опубликовать приложение с тем же лицензионным ключом. Это не только защитит вас от вины, но и сделает так, что вредоносное приложение не сможет получить доступ к данным, доступным через ваше исходное приложение (например, SharedPreferences
).
В общем, лучший способ по-настоящему обезопасить свое приложение от пиратства — это правильно настроить и использовать Proguard, лицензию Google Play, а также подписать окончательный APK очень безопасным лицензионный ключ.
ADB pull com.example.coolappdude
. Кроме того, Proguard — это обфускатор байт-кода Java. У создателей ProGuard есть несвободная программа DexGuard, которая представляет собой обфускатор байт-кода Dalvik. Можно подумать о том или ином, в зависимости от уровня вашей паранойи.
- person CatShoes; 07.02.2013
Вы можете добавить проверки несанкционированного доступа в сочетании с запутыванием, чтобы предупредить пользователя/отключить функциональность/сообщить на сервер, если приложение было пиратским. Я использую DexGuard для усиленной обфускации.
Проверка на несанкционированный доступ
- Приложение-установщик — используйте диспетчер пакетов, чтобы убедиться, что устанавливаемое приложение — это магазин приложений play/amazon.
- Проверка эмулятора — проверьте системные свойства на наличие явных признаков того, что приложение запускается на эмуляторе, что вне разработчика может указывать на атаку/вмешательство.
- Отладочная проверка — используйте диспетчер пакетов для проверки флага отладки, это должно быть отключено в продукте, что может указывать на атаку/вмешательство.
- Проверка сертификата подписи — используйте диспетчер пакетов, чтобы убедиться, что приложение подписано вашим сертификатом разработчика (это будет нарушено, если кто-то распаковал и переупаковал/переподписал приложение)
обновление: после ответа на этот вопрос я написал более подробная статья об обнаружении несанкционированного доступа.
Ознакомьтесь с системой лицензирования Google Play.
http://developer.android.com/guide/market/licensing/index.html
Это ваш лучший выбор.
Лицензирование Google Play — это сетевая служба, которая позволяет приложению запрашивать доверенный сервер лицензирования Google Play, чтобы определить, лицензировано ли приложение для текущего пользователя устройства. Служба лицензирования основана на способности сервера лицензирования Google Play определять, имеет ли данный пользователь лицензию на использование данного приложения. Google Play считает пользователя лицензированным, если он является зарегистрированным покупателем приложения.
google play licensing
иcode obfuscation
для начала. Я бы предложил проверить популярные пиратские веб-сайты и попросить хостеров удалить файлы, но я не уверен, как они справятся с этим. И он скоро вернется где-нибудь еще, это в значительной степени безнадежно. - person stefan   schedule 26.03.2012