Avatar ·

Como descompilar um arquivo DEX de volta para o código-fonte Java?

Olá, colegas! Sou novo no desenvolvimento Android e em reverse engineering. Me deparei com a seguinte tarefa: tenho um arquivo APK (um aplicativo Android comum) e quero ver como alguma lógica interna está estruturada. Eu sei que o bytecode Java (JVM) é compilado em DEX (Dalvik Executable) para Android. Mas como obter de volta o código Java legível a partir desse DEX? Tentei simplesmente abrir o APK como um arquivo ZIP e encontrar o classes.dex, mas é um binário, não dá para ler. Tentei converter DEX para JAR usando a ferramenta dex2jar, e depois abrir o JAR em um descompilador (por exemplo, JD-GUI). Em alguns casos funciona, mas frequentemente o código fica ofuscado (a, b, c em vez de nomes de variáveis) ou simplesmente quebra. Aqui está um exemplo do que vejo após a descompilação: ```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); } } ```