Intereting Posts
Как правильно отклонить DialogFragment? «Не удалось найти класс« android.support.v4.app.FragmentActivity »« Ошибка Добавление панели действий в список Заменить верхний фрагмент на задний стек Android вращает анимацию между двумя действиями? Как сделать прокручиваемую вкладку в Android? Android: Где найти RadioButton Drawable? Неиспользуемые ресурсы андроидного lint из библиотечного модуля используются в приложении Интеграция видеолента в Android для прямой трансляции Gradle + Annotations + Flavors = не будет запускать обработчик аннотаций Android ListView альфа-скроллер для быстрого прокрутки длинного списка Как я могу избежать отклонения диалога AlertDialog.Builder, когда пользователь прикасается к экрану? Android SDK Manager не может загружать новые файлы Как я могу исправить стиль Spinner для Android 4.x, размещенный поверх панели инструментов Как использовать собственный универсальный класс GSON TypeToken?

Как защитить активы, хранящиеся в Android APK

Я считаю, что этот вопрос уже задан, но я не удовлетворен их ответами и публикую его снова здесь.

Может кто-нибудь, пожалуйста, скажите мне, как защитить мои приложения Android от копий кошек, которые хотят построить подобное приложение?

Solutions Collecting From Web of "Как защитить активы, хранящиеся в Android APK"

Как всегда есть компромисс между удобством и безопасностью. Чем безопаснее вы хотите, ваше приложение будет менее удобным, тем лучше для вас.

Исходный код по своей сути небезопасен из-за простоты декомпиляции, особенно с использованием корневого телефона. Чтобы защитить исходный код, вы можете запутать и / или зашифровать свой код, который предотвратит декомпиляцию. Не совсем точно, какие инструменты доступны для Android, но я уверен, что это усложнит процесс сборки. Если вы просто запутываете, декомпиляция может быть еще возможна, но будет намного сложнее и, скорее всего, потребует, чтобы человек попытался декомпилировать ваш код, чтобы знать и понимать Bytecode, если используется сильный уровень обфускации.

Чтобы защитить ваши активы, я считаю, что ваш единственный вариант – использовать шифрование. Опять же это усложнит процесс приложения и / или сборки в зависимости от того, где вы реализуете.

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

Однако, если вы правильно защищаете ключ шифрования и используете хороший алгоритм шифрования, вам должно быть меньше беспокоиться. Это довольно сложный процесс, однако трудно использовать ключ для шифрования внутри вашего кода и не хранить его в виде открытого текста. Даже если вы не сохраните его в открытом тексте в коде, в какой-то момент он должен в памяти выполнять дешифрование. Поэтому, если кто-то может присоединить отладчик или дамп памяти в нужное время, это скомпрометирует ключ. Конечно, для этого требуется гораздо более квалифицированный противник.

В целом, вам нужно точно определить, кого вы беспокоитесь о краже своих активов. Если вас беспокоит средний Джо, копирующий их, тогда вы должны быть в порядке. Если вас беспокоит профессиональный хакер, сценарий kiddie и т. Д., Доступ к ним, то вам, вероятно, не повезло.

Может кто-нибудь, пожалуйста, скажите мне, как защитить мои приложения Android от копий кошек, которые хотят построить подобное приложение?

Как правило, вы не можете. Если это приложение, любой, кто хочет, может добраться до них.

Вы можете использовать собственную схему шифрования или использовать такие инструменты, как DexGuard . Однако, поскольку механизм и ключ дешифрования должны быть в самом приложении, все это – увеличение уровня усилий, необходимых для получения ваших активов. Сделать это сложнее, уменьшит вероятность того, что кто-то захватит активы из вашего APK, но это не помешает этой возможности. И, конечно же, есть другие способы получить большую часть этого материала (например, скриншоты и графические редакторы, записывая звук, воспроизводимый приложением).

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