studio sirve que para jadx gui from descompilar decompilar code clase java android class dex dx

jadx - java.io.file para que sirve



¿Hay alguna manera de obtener una lista de todas las clases desde un archivo.dex? (4)

Tengo un archivo .dex , llámalo classes.dex .

¿Hay alguna forma de "leer" el contenido de esa classes.dex y obtener una lista de todas las clases como nombres de clase completa, incluido su paquete, com.mypackage.mysubpackage.MyClass , para exmaple?

Estaba pensando en com.android.dx.dex.file.DexFile , pero parece que no puedo encontrar un método para recuperar un conjunto completo de clases.


Puede usar la biblioteca dexlib2 como una biblioteca independiente ( disponible en maven ), para leer el archivo dex y obtener una lista de clases.

DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/); for (ClassDef classDef: dexFile.getClasses()) { System.out.println(classDef.getType()); }

Tenga en cuenta que los nombres de las clases serán de la forma "Ljava / lang / String;", que es cómo se almacenan en el archivo dex (y en un archivo de clase java). Para convertir, simplemente elimine la primera y la última letra, y reemplace / con.



Use la herramienta de línea de comandos dexdump del Android-SDK. Está en $ANDROID_HOME/build-tools/<some_version>/dexdump . Imprime mucha más información de la que probablemente desee. No encontré una manera de hacer dexdump menos detallado, pero

dexdump classes.dex | grep ''Class descriptor''

Deberia trabajar.


baksmali tiene la funcionalidad para hacer esto comenzando en baksmali v2.2.

baksmali list classes my.dex imprimirá una lista de todas las clases en el archivo dex proporcionado.