2011-08-25 15 views
18

A punto de lanzar una versión gratuita de mi aplicación y estoy mirando hacia el modelo de mímica gratuita para dar opciones adicionales a los usuarios. Sin embargo, definitivamente estoy preocupado de que sea pirateado demasiado rápido para hacer cualquier cosa.Trampas de protección contra copia

¿Alguien tiene algunas técnicas de protección contra copia de calidad para Android? Y no estoy hablando de la posición LVL que se proporciona. Estoy buscando algunas trampas furtivas para detectar si mi código ha sido alterado con. Cualquier idea bienvenida; tengo que hacer que sea lo suficientemente duro para ellos que simplemente no vale la pena.

Respuesta

16

Solo se pirateará si es popular, por lo que queda un largo camino por recorrer :). En general, ofusque su código, no use el LVL tal como está, ya que hay herramientas que lo desactivan automáticamente. No estoy seguro de cuál es su idea de una "trampa furtiva", pero vea this para obtener algunas ideas sobre cómo proteger su aplicación.

Aquellos se mencionan en el video, pero:

  • uso ProGuard ofuscar su código
  • para detectar si el código ha cambiado, se puede comprobar el CRC de classes.dex o compruebe si el APK ha sido firmado con su certificado (si alguien cambia su código, tendrá que renunciar). Sin embargo, la herramienta antilvl desactiva de manera efectiva las API que usaría para verificar si se manipula. Entonces, debe hacerlo en código nativo si quiere que sea efectivo.
  • No haga sus comprobaciones al inicio, pero más adelante, por lo que son más difíciles de detectar.
  • si es posible, tenga un componente del lado del servidor para su licencia/verificación de alteración. Piensa en cómo debería comportarse tu aplicación si no hay conexión de red. ¿Respuestas del servidor de caché? ¿Por cuanto tiempo? ¿Denegar el acceso de inmediato? Permitir el acceso siempre ?, etc.
+0

+1 en ese vid. Pero me refiero a maneras furtivas de ocultar el código que usas para comprobar algo de Java difícil de leer. O formas de activar los anuncios después de un retraso si se ha detectado que sus códigos se alteraron con –

6

Puede utilizar ProGuard en eclipse para ocultar su código. Optimiza y ofusca su código eliminando el código no utilizado y cambiando el nombre de las clases, campos y métodos con nombres semánticamente oscuros. El resultado es un archivo .apk de menor tamaño que es más difícil de aplicar ingeniería inversa. De esa forma su código será más a prueba de manipulaciones.

Referencia: developer.android

7

protección siempre se puede romper, lo único que puede hacer es hacer que sea más difícil de romper. Algo que podría hacer sería escribir parte (s) esencial (es) de su código en C y llamarlo a través del NDK. Entonces puedes hacer algunas pruebas allí, porque descompilar la parte C será mucho más difícil que descompilar bytecode.

+3

a la derecha. java es definitivamente el lenguaje equivocado para esto, ya que es introspectible por diseño. –

Cuestiones relacionadas