Obfuscate / Encrypt SharedPreferences archivo posible?
Por lo tanto, estoy interesado en ocultar el archivo xml SharedPreferences de mi aplicación, al igual que Android LVL hace para ofuscar su licencia de datos cahce. ¿Sería esto concebible? Un montón de google-excavación ha dado pocos resultados que podrían abordar mi pregunta. Y ciertamente no soy criptólogo.
¿Qué pasa con otras formas de encriptación? Mi objetivo final no es tratar de hacer el xml a prueba de balas, sólo quiero bloquear el 90% inferior de las personas que se abstengan de jugar con él si no está en texto plano.
- Android form build: proguard no puede encontrar el método de referencia en la clase ViewConfigurationCompatFroyo
- Proguard y Android 🙁
- Android - ¿Cómo comprobar la ofuscación Proguard ha funcionado?
- ¿Ocultación / ofuscación simple de cadenas en APK?
- Uso de Proguard con Android sin ofuscación
- Cómo copiar proteger PhoneGap aplicación Android? ¿Es útil la función de protección contra copia de Android Market?
- Ofuscación de código mediante Eclipse IDE en Android
- Bloqueo usando ORMLite en Android con proguard
- Android: Configuración de Proguard para ofuscar nombres de clases y métodos
- Exportación de un proyecto de Android durante el uso de proguard en adt & sdk 20
- Proguard warning: la configuración mantiene el punto de entrada ... pero no la clase descriptor
- Obfuscation del código de Android. Quiero ocultar las claves de Parse.com
- El significado de { *; } En ProGuard
No crea que esto es posible, no sin grandes modificaciones (posiblemente escriba su propia implementación de Preferencias), y ni siquiera podría comenzar a pensar en cómo persuadiría a Android para cargar desde su implementación de Preferencias.
La implementación predeterminada de SharedPreferences no es reemplazable por lo que puedo decir: si necesita cifrar algo, haga lo que hace LVL y cifre el valor que escribe en XML de SharedPreferences, o cree su propio archivo cifrado y administrelo en disco .
¿No puedes usar un esquema para cambiar los datos de alguna manera para que sea incomprensible para la mayoría de la gente? Puedo sugerir una manera. Primero, use una cadena de tamaño fijo para que no cambie la longitud con los datos que se guardan. A continuación, puede aplicar una función simple para suavizar los bytes y compensar cada byte. Así que el resultado final seguirá siendo una cadena, pero hará que sea difícil para alguien normal para averiguar lo que es, aunque una persona empeñada en agrietarse puede tener éxito.
¿Qué tal ofuscar las claves y los valores almacenados en la preferencia-XML?
Hice un contenedor para las preferencias compartidas que cifran las claves y los valores: https://github.com/sveinungkb/encrypted-userprefs
He creado una implementación de SharedPreferences usando cifrado AES. El proyecto es un módulo maven. Si usted necesita uno, eche un vistazo. https://github.com/kovmarci86/android-secure-preferences
lo que puede hacer es .. envolver las preferencias compartidas con su propio método .. y evitar el uso de su nombre de método, como "Encrypt" "Decrypt" "String", etc, porque el proguard no ofuscará la palabra ..
aquí por ejemplo https://github.com/afiqiqmal/ConcealSharedPreference-Android