[Android] apkファイルから.javaを取り出す方法

[Android] apkファイルから.javaを取り出す方法

apktoolをMacで使う方法 の続きです。
apktoolでデコンパイルするとsmaliが取り出されて見づらいので、今度は.javaを取り出す方法をメモ。

apkファイルを逆コンパイルする手順

1. apkファイルを解凍

逆コンパイルしたい apkファイルを用意したら、まずは解凍します。
apkファイルは zip の圧縮と同じなので、zip解凍ソフトで解凍。

apkファイルをzip解凍

2. jarファイルを取得

jarファイルの取得方法が Windows でのやり方しか見つからなかったので、
とりあえずWin環境でやりました。

apkファイルを解凍したら classes.dex というファイルが見つかるので、こいつを dex2jar というツールで jarファイルを取得します。
まずは、dex2jar を入手します。

dex2jar を入手し解凍したら、dex2jar.bat を環境変数でパスを通します。

その後、コマンドプロンプトで以下のコマンドを実行します。

> dex2jar classes.dex

これを実行すると classes.dex.dex2jar.jar というファイルが取得できます。

3. classファイルを取得

classes.dex.dex2jar.jar を解凍ソフトでを解凍して、classファイルを取得します。

jarファイルからclassファイルを取得

4. jadをインストール

jad というソフトを使うと classファイルから javaファイルを取得することができます。
MacでもできたのでMac環境での手順で記載します。

まずは、jad を入手します。

jad をダウンロードした場所に移動して、ターミナルで以下のコマンドを実行してインストールします。

$ sudo mv ./jad /usr/bin/
Password:
$ sudo chmod 755 /usr/bin/jad
$ jad

5. classファイルの逆コンパイル

ターミナルで以下のコマンドを実行して、classファイルを逆コンパイルして javaファイルを取得します。

$ jad -8 -d src -s .java -r ~ **/*.class

取得されたjavaファイル

javaファイルゲット!!

WRYYYYYYYYYYーーーッ!!!