hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md
2024-02-10 21:30:13 +00:00

85 lines
5.6 KiB
Markdown

# APK 디컴파일러
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* 독점적인 [**NFT**](https://opensea.io/collection/the-peass-family) 컬렉션인 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **HackTricks**와 **HackTricks Cloud** github 저장소에 **PR을 제출**하여 해킹 기교를 공유하세요.
</details>
**각 도구에 대한 자세한 내용은 [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)
**JD-Gui**는 선구적인 GUI Java 디컴파일러로, APK 파일 내의 Java 코드를 조사할 수 있습니다. 사용하기 간단하며, APK를 얻은 후에는 JD-Gui로 코드를 검사하기만 하면 됩니다.
### [Jadx](https://github.com/skylot/jadx)
**Jadx**는 Android 애플리케이션의 Java 코드를 디컴파일하기 위한 사용자 친화적인 인터페이스를 제공합니다. 다양한 플랫폼에서 사용하기 쉬움으로 추천됩니다.
- GUI를 실행하려면 bin 디렉토리로 이동하고 다음을 실행하세요: `jadx-gui`
- 명령줄 사용법은 다음과 같습니다: `jadx app.apk`로 APK를 디컴파일합니다.
- 출력 디렉토리를 지정하거나 디컴파일 옵션을 조정하려면 다음을 사용하세요: `jadx app.apk -d <출력 디렉토리 경로> --no-res --no-src --no-imports`
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
**GDA**는 Android 앱의 역공학에 대한 다양한 기능을 제공하는 Windows 전용 도구입니다. Windows 시스템에 GDA를 설치하고 실행한 다음 분석할 APK 파일을 로드하세요.
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
**Bytecode-Viewer**를 사용하면 여러 디컴파일러를 사용하여 APK 파일을 분석할 수 있습니다. 다운로드한 후 Bytecode-Viewer를 실행하고 APK를 로드한 다음 동시 분석에 사용할 디컴파일러를 선택하세요.
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify**는 Dalvik 바이트코드를 Java 바이트코드로 변환하여 Java 분석 도구가 Android 애플리케이션을 더 효과적으로 분석할 수 있게 합니다.
- Enjarify를 사용하려면 다음을 실행하세요: `enjarify app.apk`
이렇게 하면 제공된 APK의 Java 바이트코드가 생성됩니다.
### [CFR](https://github.com/leibnitz27/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](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**는 분석용 디컴파일러로, 소스에서 빌드해야 합니다. 빌드한 후 다음을 실행하세요:
- JAR 파일을 디컴파일하려면: `java -jar ./fernflower.jar "app.jar" "output_directory"`
그런 다음 생성된 JAR에서 `.java` 파일을 `unzip`을 사용하여 추출하세요.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**Krakatau**는 특히 외부 라이브러리 처리에 대한 디컴파일에 대한 자세한 제어를 제공합니다.
- 표준 라이브러리 경로와 디컴파일할 JAR 파일을 지정하여 Krakatau를 사용하세요: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
**procyon**을 사용하여 간단한 디컴파일을 수행하려면:
- JAR 파일을 지정된 디렉토리로 디컴파일합니다: `procyon -jar "app.jar" -o "output_directory"`
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* 독점적인 [**NFT**](https://opensea.io/collection/the-peass-family) 컬렉션인 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **HackTricks**와 **HackTricks Cloud** github 저장소에 **PR을 제출**하여 해킹 기교를 공유하세요.
</details>