# 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 --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}}