リバースエンジニアリング メモ

Andoroidアプリ(apkファイル)に対して

unzip -> dex2jar -> jar -> jd-gui

の順にツールをかけることにより Javaソースコードを取得することができる

Androidアプリの脆弱性をテストするために自身で作成したアプリをツールにかけてみる


使うツール

dex2jar : dexファイルをclassファイルに変換する
jd-gui : classファイルをJAVAのソースコードに変換する
  ( jad はクラスファイルバージョン50.0以上に対応していないので使わない )


インストール

dex2jar
https://code.google.com/p/dex2jar/
$ wget https://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
$ unzip dex2jar-0.0.9.15.zip

jd-gui
http://java.decompiler.free.fr/?q=jdgui
$ wget http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.linux.i686.tar.gz
$ tar xvfz jd-gui-0.3.5.linux.i686.tar.gz


リバースエンジニアリング手順

apk の解凍
$ mkdir out/
$ unzip hoge.apk -d out/
$ cd out

dex2jar によるjarの抽出
$ dex2jar.sh classes.dex

jar の解凍
$ jar xvf classes_dex2jar.jar

JAVA ソースコードの表出
$ cd リバースエンジニアリング対象クラスのあるディレクトリ
$ jd-gui hoge.class