APK decompilers

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Para más detalles sobre cada herramienta, consulta la publicación original en https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

Como el pionero de los decompiladores GUI de Java, JD-Gui te permite investigar el código Java dentro de archivos APK. Es fácil de usar; después de obtener el APK, simplemente ábrelo con JD-Gui para inspeccionar el código.

Jadx ofrece una interfaz fácil de usar para decompilar código Java de aplicaciones Android. Se recomienda por su facilidad de uso en diferentes plataformas.

  • Para iniciar la GUI, navega hasta el directorio bin y ejecuta: jadx-gui

  • Para uso en línea de comandos, decompila un APK con: jadx app.apk

  • Para especificar un directorio de salida o ajustar opciones de decompilación: jadx app.apk -d <ruta al directorio de salida> --no-res --no-src --no-imports

GDA, una herramienta exclusiva para Windows, ofrece amplias funciones para ingeniería inversa de aplicaciones Android. Instala y ejecuta GDA en tu sistema Windows, luego carga el archivo APK para el análisis.

Con Bytecode-Viewer, puedes analizar archivos APK utilizando múltiples decompiladores. Después de descargarlo, ejecuta Bytecode-Viewer, carga tu APK y selecciona los decompiladores que deseas usar para el análisis simultáneo.

Enjarify traduce el bytecode de Dalvik al bytecode de Java, lo que permite a las herramientas de análisis Java analizar aplicaciones Android de manera más efectiva.

  • Para usar Enjarify, ejecuta: enjarify app.apk Esto genera el equivalente en bytecode de Java del APK proporcionado.

CFR es capaz de decompilar características modernas de Java. Úsalo de la siguiente manera:

  • Para decompilación estándar: java -jar ./cfr.jar "app.jar" --outputdir "directorio_de_salida"

  • Para archivos JAR grandes, ajusta la asignación de memoria JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "directorio_de_salida"

Fernflower, un decompilador analítico, requiere ser compilado desde el origen. Después de compilar:

  • Decompila un archivo JAR: java -jar ./fernflower.jar "app.jar" "directorio_de_salida" Luego, extrae los archivos .java del JAR generado usando unzip.

Krakatau ofrece un control detallado sobre la decompilación, especialmente para manejar bibliotecas externas.

  • Usa Krakatau especificando la ruta de la biblioteca estándar y el archivo JAR a decompilar: ./Krakatau/decompile.py -out "directorio_de_salida" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

Para una decompilación sencilla con procyon:

  • Decompila un archivo JAR en un directorio especificado: procyon -jar "app.jar" -o "directorio_de_salida"

Última actualización