Android Cuerdas turno de números aleatorios después de la ofuscación Proguard

StackOverflow https://stackoverflow.com/questions/4430492

  •  09-10-2019
  •  | 
  •  

Pregunta

Me acaba de utilizar la nueva herramienta ProGuard en Eclipse a la ofuscación mi solicitud. El I descompilado usando dex2Jar y JD-GUI para inspeccionar lo que pasó.

Me di cuenta de que todo, desde la clase I se ha convertido en un número aleatorio como la siguiente.

new SimpleCursorAdapter(localActivity, 2130903058, localCursor, arrayOfString, arrayOfInt);

2130903058 era un archivo de diseño. Cuerdas de un matrices reciben el mismo tratamiento.

No hay clase I en el código decompilados, donde ha ido? ¿Dónde están las referencias a las cadenas originales?

¿Fue útil?

Solución

Todas las referencias son números enteros. Si nos fijamos en R.string , se dará cuenta de todos los miembros son ints . Esto se debe a que son punteros para las cadenas reales. Por ejemplo, android.R.string.cancel está siempre 17039360, lo que apunta a la cadena Cancel. Lo que hace es que ProGuard reemplaza estas referencias con los números reales que representan, por lo que si se utiliza android.R.string.cancel, lo reemplazará con 17039360.

Editar:. No hay clase I, ya que no se necesita más (todas las referencias a él han sido sustituidos)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top