Оглавление:
- Запутывание кода
- Изменение библиотеки лицензий
- Сделайте ваше приложение устойчивым к взлому
- Переместить проверку лицензии на удаленный сервер
Безопасность приложений, пиратство и предотвращение в последнее время являются горячими темами, и на то есть веские причины. Без надежного рынка приложений сотни тысяч новых активаций в месяц не будут обслуживаться, а устойчивый рынок невозможен без поддержки разработчиков. Мы видели, что в Android есть встроенное решение для предотвращения пиратства, и мы также увидели, насколько легко обойти его, если вы решительно настроены, и если схема осталась в своей базовой форме. Google намекнул, что у них было больше информации, чтобы поделиться обо всем предмете, и, честно говоря, они сделали это. После перерыва давайте посмотрим на методы Googler, чтобы обеспечить безопасный, надежный и удобный для пользователя способ защиты приложений.
Служба лицензирования Android Market и библиотека проверки лицензий - это мощные инструменты для разработчиков, позволяющие обойти пиратство приложений. Проблема, как недавно было продемонстрировано, состоит в том, что из коробки не очень сложно обойти. Поскольку люди - это люди, и многие тратят больше времени, чем стоит взломать 99-центовое приложение из Маркета, Тревор Джонс (один из разработчиков программ для Android) разработал удобный набор советов по укреплению поставляемых инструментов, и заставить антипиратские меры работать лучше.
Четыре ключевых области:
Запутывание кода
Обфускация кода - это хитрость, используемая разработчиками, которая изменяет исходный код, усложняя отслеживание известных функций, пакетов, классов и переменных, предоставляя псевдоним каждому. Возьмите эту воображаемую функцию, например - onRedraw (). Каждое место, где вы используете функцию в исходном коде, находится там, легко читается и, возможно, эксплуатируется. Обфускатор кода заменит понятную человеку функцию сгенерированным псевдонимом - хороший пример - wy23 (). Быстрый взгляд (или автоматизированный инструмент) на поиск функций не сработает, так как требуется серьезное копание, чтобы понять, что на самом деле означает wy23 (). Доступен коммерческий Java-код obfyousk8tors (ha!), И Тревор рекомендует ProGuard и планирует в будущей статье в блоге разработчиков Android о работе с ProGuard.
Изменение библиотеки лицензий
Google рекомендует разработчикам максимально изменить источник поставляемых библиотек лицензий, сохраняя при этом исходную функцию. Это один из случаев, когда выбранный путь не имеет значения, пока достигнут пункт назначения. Разработчики могут закапывать функции в операторы if / then, циклы и даже помещать всю библиотеку в свой собственный блок кода.
Чтобы продвинуться дальше, разработчикам рекомендуется использовать хэш-проверки и другие методы шифрования для генерации новых констант, а также изменять код для поиска новых констант вместо использования тех, которые предоставлены Google в примере кода. Обязательно перейдите по ссылке на источник, чтобы увидеть отличный пример от Google, показывающий, как это можно сделать. И не забудьте также запутать код здесь!
Сделайте ваше приложение устойчивым к взлому
Это просто. Чтобы вор- хакер удалил лицензирование из вашего приложения, он или она должен провести обратный инжиниринг и перестроить приложение. Используйте проверки CRC, чтобы предотвратить это. У Google есть и другой удобный инструмент для этой области - убедитесь, что Android Market был источником установки вашего приложения, и если нет, не позволяйте ему работать. Опять же, есть отличный пример этого по ссылке на источник.
Переместить проверку лицензии на удаленный сервер
Если ваше приложение использует онлайн-компоненты, Google рекомендует вам переместить информацию о LVL и ответ из приложения на свой сервер. Когда пользователь использует приложение, ваш сервер проверяет с Google, и если все не кошерно, контент не подается. Несмотря на простоту, это также очень эффективно, так как кто-то должен будет изменить не только приложение, но и контент на вашем сервере. Помните, что локальные данные никогда не бывают безопасными, но правильно обслуживаемый и защищенный сервер - довольно сложная задача.
Наконец, Google помнит нас - конечных пользователей и рекомендует использовать эти приемы прозрачным и удобным для пользователя способом. Если вы разработчик приложения и заинтересованы в защите целостности и пиратстве вашего приложения (и вам следует это делать!), Обязательно ознакомьтесь с исходной ссылкой. Это становится все отвратительным и нечетким и выкладывается на вас. Для остальных из нас это скорее напоминание о том, как Goggle любит своих разработчиков, и мы можем чувствовать себя хорошо, зная, что большой G делает все возможное, чтобы помочь.