APK decompilers
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 decompilador GUI Java pionero, JD-Gui te permite investigar 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 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 su 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 usandounzip
.
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"
Last updated