Avatar ·

¿Cómo descompilar un archivo DEX de vuelta al código fuente Java?

¡Hola, colegas! Soy nuevo en el desarrollo Android y reverse engineering. Me encontré con esta tarea: tengo un archivo APK (una aplicación Android normal) y quiero ver cómo está estructurada alguna lógica internamente. Sé que el bytecode Java (JVM) se compila a DEX (Dalvik Executable) para Android. Pero, ¿cómo obtener de este DEX el código Java legible de vuelta? Intenté simplemente abrir el APK como un archivo ZIP y encontrar classes.dex, pero es un binario, no se puede leer. Probé convertir DEX a JAR usando la utilidad dex2jar, y luego abrir el JAR en un descompilador (por ejemplo, JD-GUI). En algunos casos funciona, pero a menudo el código resulta ofuscado (a, b, c en lugar de nombres de variables) o simplemente se rompe. Aquí hay un ejemplo de lo que veo después de la descompilación: ```java public class a { public static String a(String str) { int i = 0; for (int i2 = 0; i2 < str.length(); i2++) { i = (i + str.charAt(i2)) * 17; } return Integer.toHexString(i); } } ``` ¿Cómo convertir esto...