APK decompilers
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Para más detalles sobre cada herramienta, consulta la publicación original de https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr
Como el decompilador GUI Java pionero, 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 lanzar la GUI, navega al 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 solo para Windows, ofrece amplias características para la ingeniería inversa de aplicaciones Android. Instala y ejecuta GDA en tu sistema Windows, luego carga el archivo APK para análisis.
Con Bytecode-Viewer, puedes analizar archivos APK utilizando múltiples decompiladores. Después de descargar, ejecuta Bytecode-Viewer, carga tu APK y selecciona los decompiladores que deseas usar para un análisis simultáneo.
Enjarify traduce bytecode Dalvik a bytecode Java, permitiendo que las herramientas de análisis de Java analicen aplicaciones Android de manera más efectiva.
Para usar Enjarify, ejecuta: enjarify app.apk
Esto genera el bytecode Java equivalente 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_salida"
Para archivos JAR grandes, ajusta la asignación de memoria de la JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "directorio_salida"
Fernflower, un decompilador analítico, requiere ser construido desde el código fuente. Después de construir:
Decompila un archivo JAR: java -jar ./fernflower.jar "app.jar" "directorio_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_salida" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
Para una decompilación sencilla con procyon:
Decompila un archivo JAR a un directorio especificado: procyon -jar "app.jar" -o "directorio_salida"
Esta herramienta se puede usar para volcar el DEX de un APK en ejecución en memoria. Esto ayuda a superar la ofuscación estática que se elimina mientras la aplicación se ejecuta en memoria.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)