Acabo de ofuscar mi código de Android usando proguard y luego lo descompilé. Hay una serie de cuerdas que realmente me gustaría esconder de miradas indiscretas. Cuando descompilé mi código, las cuerdas estaban ahí para que todos las vieran ... y cambiasen. Una de las cadenas es una URL para mi servidor de licencias y, de hecho, podría cambiar la URL para apuntar a un servidor falso (ya que lanzaré el código del servidor al público). ¿Cuál es la mejor manera de ocultar este tipo de información?Ocultando cadenas en el código ofuscado
Además, noté que las cadenas de la clase R son todos números aleatorios pero no puedo encontrar la clase R en el código descompilado. ¿Dónde está?
Foe ejemplo veo: new SimpleCursorAdapter(localActivity, 2130903058, localCursor, arrayOfString, arrayOfInt);
2130903058 es un archivo de diseño, pero ¿qué es lo que hacen referencia a? El número no significa nada a menos que esté apuntando a algún tipo de dirección.
¿Qué hay de almacenar algunos archivos de clase en el servidor. ¿Es posible descargar e instalar nuevos archivos de clase después de que una aplicación ya esté instalada? ¿Hay alguna manera de hacer esto de forma segura, es decir, no permitir que alguien copie los archivos de un dispositivo ya registrado y simplemente usarlos? – jax
Puede agregar varias capas pero, al final, no podrá evitar un hacker determinado. En algún momento, es mejor que invierta su tiempo en el resto de su producto, que sea lo suficientemente bueno (lea lo suficientemente valioso) y la gente no querrá robarlo. –
"Al final, no podrás evitar un hacker determinado" -> Estas son las mejores palabras en este largo hilo.Mark tiene razón al decirlo, lo mejor que podemos hacer es desacelerar a los atacantes solamente. – Krypton