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

74 lines
4.4 KiB
Markdown
Raw Normal View History

# APK decompilers
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Impara e pratica AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Supporta HackTricks</summary>
2024-01-03 11:43:38 +01:00
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
{% endhint %}
2022-04-28 16:01:33 +00:00
**Per ulteriori dettagli su ciascun strumento controlla il post originale da [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
2024-02-08 04:06:37 +01:00
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Come il pioniere decompilatore GUI Java, **JD-Gui** ti consente di investigare il codice Java all'interno dei file APK. È semplice da usare; dopo aver ottenuto l'APK, aprilo semplicemente con JD-Gui per ispezionare il codice.
2024-02-08 04:06:37 +01:00
### [Jadx](https://github.com/skylot/jadx)
**Jadx** offre un'interfaccia user-friendly per decompilare il codice Java dalle applicazioni Android. È raccomandato per la sua facilità d'uso su diverse piattaforme.
- Per avviare la GUI, naviga nella directory bin ed esegui: `jadx-gui`
2024-02-10 13:03:23 +00:00
- Per l'uso da riga di comando, decompila un APK con: `jadx app.apk`
- Per specificare una directory di output o regolare le opzioni di decompilazione: `jadx app.apk -d <path to output dir> --no-res --no-src --no-imports`
2024-02-08 04:06:37 +01:00
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
**GDA**, uno strumento solo per Windows, offre ampie funzionalità per il reverse engineering delle app Android. Installa e esegui GDA sul tuo sistema Windows, quindi carica il file APK per l'analisi.
2024-02-08 04:06:37 +01:00
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Con **Bytecode-Viewer**, puoi analizzare i file APK utilizzando più decompilatori. Dopo aver scaricato, esegui Bytecode-Viewer, carica il tuo APK e seleziona i decompilatori che desideri utilizzare per un'analisi simultanea.
2024-02-08 04:06:37 +01:00
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify** traduce il bytecode Dalvik in bytecode Java, consentendo agli strumenti di analisi Java di analizzare le applicazioni Android in modo più efficace.
2024-02-10 13:03:23 +00:00
- Per utilizzare Enjarify, esegui: `enjarify app.apk`
Questo genera l'equivalente bytecode Java dell'APK fornito.
2024-02-08 04:06:37 +01:00
### [CFR](https://github.com/leibnitz27/cfr)
**CFR** è in grado di decompilare le funzionalità Java moderne. Usalo come segue:
- Per la decompilazione standard: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Per file JAR di grandi dimensioni, regola l'allocazione della memoria JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
2024-02-08 04:06:37 +01:00
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**, un decompilatore analitico, richiede la costruzione dal sorgente. Dopo la costruzione:
2021-03-22 09:38:34 +00:00
- Decompila un file JAR: `java -jar ./fernflower.jar "app.jar" "output_directory"`
Poi, estrai i file `.java` dal JAR generato usando `unzip`.
2021-03-22 09:38:34 +00:00
2024-02-08 04:06:37 +01:00
### [Krakatau](https://github.com/Storyyeller/Krakatau)
2021-03-22 09:38:34 +00:00
**Krakatau** offre un controllo dettagliato sulla decompilazione, specialmente per la gestione delle librerie esterne.
2021-03-22 09:38:34 +00:00
- Usa Krakatau specificando il percorso della libreria standard e il file JAR da decompilare: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
2021-03-22 09:38:34 +00:00
2024-02-08 04:06:37 +01:00
### [procyon](https://github.com/mstrobel/procyon)
2021-03-22 09:38:34 +00:00
2024-02-10 13:03:23 +00:00
Per una decompilazione semplice con **procyon**:
2021-03-22 09:38:34 +00:00
- Decompila un file JAR in una directory specificata: `procyon -jar "app.jar" -o "output_directory"`