APK decompilers
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ฐ ๋๊ตฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr ์๋ณธ ๊ฒ์๋ฌผ์ ํ์ธํ์ธ์.
JD-Gui
์ ๊ตฌ์ ์ธ GUI Java ๋์ปดํ์ผ๋ฌ์ธ JD-Gui๋ APK ํ์ผ ๋ด์ Java ์ฝ๋๋ฅผ ์กฐ์ฌํ ์ ์๊ฒ ํด์ค๋๋ค. ์ฌ์ฉ์ด ๊ฐ๋จํ๋ฉฐ, APK๋ฅผ ์ป์ ํ JD-Gui๋ก ์ด์ด ์ฝ๋๋ฅผ ๊ฒ์ฌํ๋ฉด ๋ฉ๋๋ค.
Jadx
Jadx๋ Android ์ ํ๋ฆฌ์ผ์ด์ ์ Java ์ฝ๋๋ฅผ ๋์ปดํ์ผํ๊ธฐ ์ํ ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉํ๊ธฐ ์ฌ์ ์ถ์ฒ๋ฉ๋๋ค.
- GUI๋ฅผ ์คํํ๋ ค๋ฉด bin ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ ๋ค์์ ์คํํฉ๋๋ค:
jadx-gui - ๋ช
๋ น์ค ์ฌ์ฉ์ ์ํด APK๋ฅผ ๋์ปดํ์ผํ๋ ค๋ฉด:
jadx app.apk - ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋์ปดํ์ผ ์ต์
์ ์กฐ์ ํ๋ ค๋ฉด:
jadx app.apk -d <path to output dir> --no-res --no-src --no-imports
GDA-android-reversing-Tool
GDA๋ Windows ์ ์ฉ ๋๊ตฌ๋ก, Android ์ฑ์ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ์ํ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Windows ์์คํ ์ GDA๋ฅผ ์ค์นํ๊ณ ์คํํ ํ APK ํ์ผ์ ๋ก๋ํ์ฌ ๋ถ์ํฉ๋๋ค.
Bytecode-Viewer
Bytecode-Viewer๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋์ปดํ์ผ๋ฌ๋ฅผ ํตํด APK ํ์ผ์ ๋ถ์ํ ์ ์์ต๋๋ค. ๋ค์ด๋ก๋ ํ Bytecode-Viewer๋ฅผ ์คํํ๊ณ APK๋ฅผ ๋ก๋ํ ๋ค์ ๋์์ ์ฌ์ฉํ ๋์ปดํ์ผ๋ฌ๋ฅผ ์ ํํฉ๋๋ค.
Enjarify
Enjarify๋ Dalvik ๋ฐ์ดํธ์ฝ๋๋ฅผ Java ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํ์ฌ Java ๋ถ์ ๋๊ตฌ๊ฐ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ํจ๊ณผ์ ์ผ๋ก ๋ถ์ํ ์ ์๊ฒ ํฉ๋๋ค.
- Enjarify๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค:
enjarify app.apk์ด๋ ์ ๊ณต๋ APK์ Java ๋ฐ์ดํธ์ฝ๋ ๋๋ฑ๋ฌผ์ ์์ฑํฉ๋๋ค.
CFR
CFR์ ํ๋ Java ๊ธฐ๋ฅ์ ๋์ปดํ์ผํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค:
- ํ์ค ๋์ปดํ์ผ์ ์ํด:
java -jar ./cfr.jar "app.jar" --outputdir "output_directory" - ํฐ JAR ํ์ผ์ ๊ฒฝ์ฐ, JVM ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์กฐ์ ํฉ๋๋ค:
java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"
Fernflower
Fernflower๋ ๋ถ์ ๋์ปดํ์ผ๋ฌ๋ก, ์์ค์์ ๋น๋ํด์ผ ํฉ๋๋ค. ๋น๋ ํ:
- JAR ํ์ผ์ ๋์ปดํ์ผํฉ๋๋ค:
java -jar ./fernflower.jar "app.jar" "output_directory"๊ทธ๋ฐ ๋ค์, ์์ฑ๋ JAR์์.javaํ์ผ์ ์ถ์ถํ๋ ค๋ฉดunzip์ ์ฌ์ฉํฉ๋๋ค.
Krakatau
Krakatau๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํนํ ๋์ปดํ์ผ์ ๋ํ ์ธ๋ถ์ ์ธ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Krakatau๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ๋ก์ ๋์ปดํ์ผํ JAR ํ์ผ์ ์ง์ ํฉ๋๋ค:
./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
procyon
procyon์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ๋์ปดํ์ผ์ ์ํํฉ๋๋ค:
- JAR ํ์ผ์ ์ง์ ๋ ๋๋ ํ ๋ฆฌ๋ก ๋์ปดํ์ผํฉ๋๋ค:
procyon -jar "app.jar" -o "output_directory"
frida-DEXdump
์ด ๋๊ตฌ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์คํ ์ค์ธ APK์ DEX๋ฅผ ๋คํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฉ๋ชจ๋ฆฌ์์ ์คํ๋๋ ๋์ ์ ๊ฑฐ๋๋ ์ ์ ๋๋ ํ๋ฅผ ์ฐํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


