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

6 KiB
Raw Blame History

APK decompilers

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %} {% endhint %}

各ツールの詳細については、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を使用して簡単にデコンパイルするには:

Support HackTricks
{% endhint %} {% endhint %}