Запутывание кода Android и защищенное приложение для Android от пиратства - PullRequest
5 голосов
/ 05 сентября 2011

В настоящее время я новичок в разработке для Android. Мне нужно разработать защищенное приложение для Android, чтобы я мог спасти его от getteg pirate.

Для безопасности приложения я использовал RMS в J2ME. В J2ME я использую следующие шаги:

  1. создать серийный номер (случайное число)
  2. сохранить это число в среднеквадратическом значении, при следующем запуске приложения отобразить тот же серийный номер на экране и попросите пользователя ввести действительную активацию код тогда, если пользователь вводит правильный код активации, то приложение активирует и флаг установлен в true, и я сохраняю это значение флага в другие среднеквадратичные значения
  3. если значение флага равно true, то домашний экран отображается для пользователя на снова запустить приложение, иначе отобразится страница активации.

Я хочу реализовать эту концепцию в Android. Пожалуйста, сообщите мне, как это сделать. Или скажите, знает ли кто-нибудь какой-нибудь лучший способ сделать это в Android.

Во-вторых, я хочу замаскировать файл apk перед выпуском приложения. После двухдневного изучения я обнаружил, что это можно сделать с помощью proguard. оба вопроса.

Спасибо

Ответы [ 3 ]

4 голосов
/ 05 сентября 2011

На самом деле нет способа защитить какой-либо код на стороне клиента, будь то Android * .apk, файл Java * .jar или немного кода JavaScript, который запускается в браузере вашего пользователя.Лучший способ защитить себя от пиратства - сделать приложение зависимым от некоторых серверных вычислений, которые вы предоставляете.

Поскольку вы используете RMS, похоже, вам уже требуются вычисления на стороне сервера.Вместо того, чтобы мешать пользователям вводить код активации, почему бы вам не связать этот код активации с адресом электронной почты пользователя при покупке приложения, а затем почему бы вам не использовать OAuth с его учетной записью Google, чтобы убедиться, что у пользователя естьадрес электронной почты, который, как известно, приобрел приложение?

3 голосов
/ 05 сентября 2011
  • О СКО

Майкл Аарон Сафян сказал все, добавить нечего.

  • О ProGuard

ProGuard теперь интегрирован в платформу Android и практически не требует настройки. Вам просто нужно включить его , как описано в этой статье , и при необходимости настроить его конфигурацию. «При необходимости», так как конфигурация по умолчанию подходит для большинства проектов. Вам просто нужно быть осторожным с использованием, если отражение, как и большинство пакетов, классов и методов, будет переименовано в процессе запутывания.

0 голосов
/ 05 сентября 2011

Параллелем с RMS в Android является SharedPreferences. Однако XML-файл sharedPreferences не так защищен, как файлы RMS в J2ME (по крайней мере, на некоторых устройствах). Любой пользователь с рутованным устройством может легко прочитать и написать этот файл ...

Поэтому я предлагаю вам прочитать о лицензировании приложений Android. Это далеко не идеально, но это встроенная функция, которую вы можете легко интегрировать. http://developer.android.com/guide/publishing/licensing.html

EDIT: Obfuscation: Чтобы запутать ваш проект, все что вам нужно сделать, это добавить proguard.config=proguard.cfg в ваш файл default.properties.

Запутывание происходит в соответствии с конфигурацией, указанной в файле defult proguard.cfg. Обратите внимание, что ваш код будет запутан только при создании окончательного APK (Android Tools -> Export ...), и я рекомендую тестировать окончательный APK после запутывания, особенно когда сторонние библиотеки являются частью процесса сборки

...