Cómo proteger los activos almacenados en Android APK

Creo que esta pregunta ya se ha hecho, pero no estoy satisfecho con sus respuestas y publicarlo de nuevo aquí.

¿Puede alguien por favor decirme cómo salvaguardar mis recursos de la aplicación de Android de los gatos de copia que quieren construir una aplicación similar?

Como siempre hay un trade-off entre comodidad y seguridad. Cuanto más seguro que desea su aplicación, menos conveniente será para que usted desarrolle.

El código fuente es intrínsecamente inseguro debido a la facilidad de descompilación especialmente con el teléfono enraizado. Para proteger su código fuente puede ocultar y / o cifrar el código que evitará la descompilación. No estoy seguro de qué herramientas están disponibles para Android, pero estoy seguro de que complicará su proceso de creación. Si sólo obfuscate, decompiling todavía puede ser posible, pero será mucho más difícil y probablemente requerirá la persona que intenta descompilar su código para conocer y entender Bytecode si se utiliza un fuerte nivel de ofuscación.

Para proteger sus activos, creo que su única opción es usar el cifrado. Nuevamente esto complicará la aplicación y / o proceso de construcción dependiendo de dónde se implemente.

Incluso si utiliza el cifrado para proteger sus activos, debe proteger la clave de cifrado dentro de su código fuente. Obviamente, no importa qué esquema de cifrado que utiliza si su clave de cifrado está en texto plano en el código fuente, entonces cualquiera puede agarrar la clave y su activo y descifrar. Todo esto hace es añadir una cerca más pequeña para saltar.

Sin embargo, si protege correctamente la clave de cifrado y utiliza un buen algoritmo de cifrado, debería tener menos de qué preocuparse. Este es un proceso bastante complicado, sin embargo, es difícil utilizar una clave para el cifrado dentro de su código y no mantenerlo en texto plano. Incluso si no lo mantiene en texto plano dentro del código, en algún momento debe estar en la memoria para realizar el descifrado. Así que si alguien puede adjuntar un depurador o volcado memoria en el momento adecuado, se compromete la clave. Por supuesto, esto requiere un adversario mucho más hábil.

En general, es necesario decidir exactamente a quién le preocupa robar sus activos. Si usted está preocupado por la media de Joe copiarlos, entonces usted debe estar bien. Si usted está preocupado por un hacker profesional, script kiddie, etc obtener acceso a ellos, entonces usted está probablemente fuera de suerte.

¿Puede alguien por favor decirme cómo salvaguardar mis recursos de la aplicación de Android de los gatos de copia que quieren construir una aplicación similar?

En general, no se puede. Si está en la aplicación, cualquiera que quiera puede llegar a ellos.

Le invitamos a rodar su propio esquema de cifrado, o utilizar herramientas como DexGuard . Sin embargo, dado que el motor de desencriptación y clave debe estar en la aplicación en sí, todos estos hacer es aumentar el nivel de esfuerzo necesario para llegar a sus activos. Hacerlo más difícil reducirá las probabilidades de que alguien agarra los activos de su APK, pero no impide la posibilidad. Y, por supuesto, hay otras maneras de obtener en gran parte de este material (por ejemplo, capturas de pantalla y editores de imágenes, grabación de audio reproducido por la aplicación).

Puede proteger el contenido de la carpeta de activos cifrándola utilizando algoritmos de cifrado de gran alcance y descifrarlos en tiempo de ejecución. Copycats no se puede descifrar fácilmente y obtener el contenido de la carpeta de activos simplemente extraer apk utilizando herramientas zip.

  • Cómo obtener una cantidad de los archivos en determinada carpeta en los activos?
  • Activos de Android sin contexto
  • ¿Cómo cargar videos de la carpeta de activos? (Para reproducirlas con VideoView)
  • Lectura de PDF desde la carpeta de activos usando PDFViewer.jar
  • Creación de activos de imagen en Android Studio
  • Seguridad de activos en Android
  • ¿Cómo hacer referencia a los "activos" de Android a través de paquetes?
  • Activos de Android con subcarpetas
  • ¿Cómo cargar una imagen de los activos?
  • GetAssets (); De otra clase
  • Android assetManager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.