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