63 lines
3.6 KiB
Markdown

# APK dekompilatori
{{#include ../../banners/hacktricks-training.md}}
**Za više detalja o svakom alatu pogledajte originalni post sa** [**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)
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Kao pionirski GUI Java dekompilator, **JD-Gui** vam omogućava da istražujete Java kod unutar APK datoteka. Lako je za korišćenje; nakon što dobijete APK, jednostavno ga otvorite sa JD-Gui da biste pregledali kod.
### [Jadx](https://github.com/skylot/jadx)
**Jadx** nudi korisnički prijateljski interfejs za dekompilaciju Java koda iz Android aplikacija. Preporučuje se zbog svoje jednostavnosti korišćenja na različitim platformama.
- Da biste pokrenuli GUI, idite u bin direktorijum i izvršite: `jadx-gui`
- Za korišćenje iz komandne linije, dekompilujte APK sa: `jadx app.apk`
- Da biste odredili izlazni direktorijum ili prilagodili opcije dekompilacije: `jadx app.apk -d <putanja do izlaznog direktorijuma> --no-res --no-src --no-imports`
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
**GDA**, alat koji radi samo na Windows-u, nudi opsežne funkcije za reverzno inženjerstvo Android aplikacija. Instalirajte i pokrenite GDA na vašem Windows sistemu, a zatim učitajte APK datoteku za analizu.
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Sa **Bytecode-Viewer**, možete analizirati APK datoteke koristeći više dekompilatora. Nakon preuzimanja, pokrenite Bytecode-Viewer, učitajte svoj APK i odaberite dekompilatore koje želite koristiti za simultanu analizu.
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify** prevodi Dalvik bajtkod u Java bajtkod, omogućavajući Java analitičkim alatima da efikasnije analiziraju Android aplikacije.
- Da biste koristili Enjarify, pokrenite: `enjarify app.apk` Ovo generiše Java bajtkod ekvivalent datom APK-u.
### [CFR](https://github.com/leibnitz27/cfr)
**CFR** je sposoban da dekompiliše moderne Java funkcije. Koristite ga na sledeći način:
- Za standardnu dekompilaciju: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Za velike JAR datoteke, prilagodite JVM alokaciju memorije: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**, analitički dekompilator, zahteva izgradnju iz izvora. Nakon izgradnje:
- Dekompilujte JAR datoteku: `java -jar ./fernflower.jar "app.jar" "output_directory"` Zatim, izdvojite `.java` datoteke iz generisane JAR koristeći `unzip`.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**Krakatau** nudi detaljnu kontrolu nad dekompilacijom, posebno za rukovanje spoljnim bibliotekama.
- Koristite Krakatau tako što ćete odrediti putanju do standardne biblioteke i JAR datoteku koju treba dekompilovati: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
Za jednostavnu dekompilaciju sa **procyon**:
- Dekompilujte JAR datoteku u određeni direktorijum: `procyon -jar "app.jar" -o "output_directory"`
### [frida-DEXdump](https://github.com/hluwa/frida-dexdump)
Ovaj alat može se koristiti za dumpovanje DEX-a pokrenutog APK-a u memoriji. Ovo pomaže da se prevaziđe statička obfusikacija koja se uklanja dok se aplikacija izvršava u memoriji.
{{#include ../../banners/hacktricks-training.md}}