hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md

5.5 KiB

APK decompilers

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %} {% endhint %}

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

JD-Gui

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

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-android-reversing-Tool

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.

Bytecode-Viewer

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

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

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

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

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"

procyon

Para una decompilación sencilla con procyon:

Support HackTricks
{% endhint %} {% endhint %}