DEXをJavaソースコードに逆コンパイルする

Android DEX(VMバイトコード)ファイルを、対応するJavaソースコードにデコンパイルする方法を教えてください。

ソリューション

♪ It's easy

このツールを手に入れよう。

  1. dex2jar dexファイルをjarファイルに変換します。

  2. jd-gui jarファイルの中のjavaファイルを見るためのツール

ソースコードは、dex2jarがいくつかの最適化を行っているので、かなり読みやすくなっています。

手順

そして、デコンパイルの手順を紹介します。

Step 1:

test_apk-debug.apkのclasses.dexをtest_apk-debug_dex2jar.jarに変換します。

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

Note: Windows マシンでは、すべての .sh スクリプトが .bat スクリプトに置き換えられます。

dex2jar ドキュメントを参照してください。

ステップ2:

JD-GUIでjarファイルを開きます。

解説 (11)

本当はここに行くことをお勧めします。 https://github.com/JesusFreke/smaliをご覧ください。

これは、DEXファイルのための最も優れたリバースエンジニアリングツールであるBAKSMALIを提供しています。 これは、Androidの有名なROMを作成したJesusFreke氏によって作られています。

解説 (4)

Dedexer]1を使うと、.dexファイルをdalvikバイトコード(.ddx)に逆アセンブルすることができます。

Javaにデコンパイルすることは、私の知る限りできません。
dalvikバイトコードについてはこちらをご覧ください。

解説 (2)