Cómo deobfuscate jar archivo utilizando mapping.txt generado por Proguard?

Esto puede sonar sospechoso, pero necesito deobfuscate mi propia aplicación . Hace algún tiempo he publicado mi aplicación que he ofuscado con Proguard. Desafortunadamente no he guardado esa versión de la aplicación y he cambiado mucho el código.

Ahora necesito el código de esa versión anterior. Todavía tengo el archivo mapping.txt generado por Proguard.

He convertido el archivo classes.dex a jar (usando la herramienta dex2jar), ahora necesito desobfuscatelo de acuerdo a mapping.txt. ¿Hay alguna herramienta que me pueda ayudar? Tal vez Proguard en sí?

UPD. Necesito una herramienta que puede renombrar automáticamente todas las clases, funciones etc, así que no tengo que hacerlo manualmente. Gracias

2 Solutions collect form web for “Cómo deobfuscate jar archivo utilizando mapping.txt generado por Proguard?”

Si tiene las asignaciones, puede recuperar todas las clases, campos y nombres de métodos. Puede usar java-asm (una biblioteca de modificaciones de bytecode) para reasignar los nombres de clase y miembro. La mayor parte del trabajo será la actualización de los descriptores de los miembros.

Hice uno para mí y tomó sobre un día para conseguirlo que trabaja confiablemente.

Edit: No es perfecto, pero es muy cerca. Enlace . Captura de pantalla de la GUI Darle un archivo jar proguarded, las asignaciones y renombrar todo lo que puede encontrar. Hay algunos problemas, pero por sólo mirar la fuente debe hacer el trabajo. Simplemente descargue el tarro que hace (FileName + "-Re.jar") en un descompilador como Luyten / JD-GUI. También las entradas de archivo sólo se cambian a través de los botones. Los cuadros de texto son sólo para la retroalimentación visual / confirmación.

Edición 2: NPE fijo que ocurre cuando la entrada de clase en asignaciones no existe en el tarro dado.

Edición 3: Corregido un montón de problemas que resultan en los métodos que no se renombró.

Edit 4: Cargado jar compilado a github (lanzamientos, en el archivo zip que está en la utilidad de mapeo) , añadió soporte para múltiples tipos de asignación.

Sugiero utilizar la herramienta proguard como se sugiere en la respuesta anterior junto con Enigma . La solución para su problema no puede ser muy sencilla y necesita usar una combinación de herramientas disponibles para resolverlo.

  • Android Proguard, eliminando todas las sentencias de registro y combinando paquetes
  • La ofuscación de Proguard está rompiendo simplexml
  • Proguard no ignora las bibliotecas referenciadas
  • Conflicto entre la vinculación de datos de Android y la guayaba provoca error en ProGuard
  • Biblioteca "libmaliinstr.so" no encontrado
  • Com.google.android.gms.internal.zzhu: no se puede encontrar la clase referenciada android.security.NetworkSecurityPolicy
  • Cómo configurar Proguard para mantener los métodos estáticos con diferentes tiempos de retorno
  • DexIndexOverflowException sólo al ejecutar pruebas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.