Новости из мира Android, программы, игры. Программирование под Android.

android-developers.blogspot.com

Proguard, Licensing Server - защита приложения

Как и обещали, выкладываем заметки по использованию обфускатора Proguard для защиты Ваших приложений.

Image

Перед тем, как начать использовать Proguard, убедитесь, что у вас последняя версия Android SDK Tools (v7). В ней содержится скрипт Ant, который позволяет пользователю указать какие-либо дополнительные действия перед или после выполнения компиляции, что позволяет облегчить интеграцию с такими продуктами как Proguard.

Добавляем поддержку Proguard в build.xml

Прежде всего скачайте Proguard.
Все сборки проектов в Android выполняются через запуск ant build.xml. Если вы работаете в Eclipse, то можете в нем работать с Ant, но я бы рекомендовал установить его отдельно http://ant.apache.org/bindownload.cgi и работать через консоль. Android tools может сгенирить для вас стартовый build.xml:

Music Voice Action

Недавно Гугл выпустила новый голосовой поиск для платформы Андрой. Так называемый Voice Actions, который позволяет искать и затем слушать найденные музыкальные композиции. Поиск запускается голосом, к примеру, фраза "listen to They Might Be Giants" (поддержка русского языка выйдет 22 сентября) инициирует поиск композиции "They Might Be Giants". Поиск выполняется по онлайн сервисам Pandora, Last.fm, Spotify, mSpot, и Rdio.

Чтобы реализовать такой же функционал (поиск музыки по фразе "listen to") в своем приложение достаточно использовать новый Intent, реализующий данную возможность. Пока данный компонент не определен в SDK, как константа. Но его уже можно использовать, приведем код:

Блог разработчиков Android: Securing Android LVL Applications

основан на http://android-developers.blogspot.com/2010/09/securing-android-lvl-appl...

Android Market licensing service является мощным инструментом для защиты приложений от пиратского использования. License Verification Library (LVL) является базовым (ключевым) компонентом для создания своей системы защиты. Нужно понимать, что дотошный хакер обойдет любую систему защиты, но максимально усложнить ему задачу обхода LVL в наших силах.

Image

Изначально, так сказать коробочное решение (Out of the box) LVL предоставляет достаточно простые механизмы защиты приложения, такое как невозможность копирования программы с одного устройства на другое. Данный пост покажет, как сделать защиту от более продвинутых пользователей, тех, кто может декомпилировать код и удалить или блокировать LVL-код и затем откомпилировать приложение без LVL защиты. Шаги, которые усложнят задачу взлома:

  • Использования обфускатора для усложнения задач реверс-инжениринга;
  • Ваше приложение должно быть tamper-resistant
  • Вы можете изменить LVL библиотеку сами, чтобы реализовать собственную защиту для усложнения основных техник взлома;c
  • Вы можете перенести проверку лицензии на доверительный сервер;

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

Применение обфускатора

Для тех, кто еще не знает, что делает обфускатор, объясняю: когда приложение компилируется, создается байткод, который содержит ссылки на исходный код – имена классов, полей, методов и т.д. Данный код легко читаем для человека. Обфускатор позволяет изменить читаемый текст кода программы, который был написан разработчиком на не читаемы. Скажем, разработчик создал переменную “MyVar”, после работы обфускатора она будет иметь имя “a”, что конечно усложнить понимание (читаемость) кода.

На рынке существую достаточно большой выбор, как коммерческих, так и бесплатных обфускаторов для Java, которые будут работать и с Android. Один из примеров ProGuard.

Изменение лицензионной библиотеки

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

  • На логики работы ядра библиотеки;
  • Входные и выходные точки приложения;
  • Как ваше приложение вызывает LVL библиотеку и обрабатывает ответ на запрос лицензии;