Androidのデコンパイルのメモ(リバースエンジニアリング)

毎回調べるのめんどくさいのでメモ

1. apkファイルの解凍

apkはただのzipなんで

$ unzip demo.apk

2. jarファイルへデコード

解凍するとなかにclasses.dexってのがあるので
これをデコードする。
デコードにはdex2jarを使う
“(dex2jar download)”:https://code.google.com/p/dex2jar/downloads/list
解凍したなかにあるdex2jar.shを使う。

$ ./dex2jar.sh clases.dex

そうすると
**classes_dex2jar.jar
ってファイルが出来る。

3.jarファイルをclassに

ただのzipなんで

$ unzip classes_dex2jar.jar

4.classファイルをjavaファイルに

classファイルをjavaに変換するにはjadを使う
“(jad)”:http://www.varaneckas.com/jad/
解凍するとなかにjadってファイルがあるので
さっきまでのフォルダに突っ込むなりして

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

5.xmlのデコード

で、これだけだとxmlとかがバイナリってるので
apktoolを使ってxmlもデコードする。
“(android-apktool)”:https://code.google.com/p/android-apktool/
のページから
apktool-install-macosx-rxx-ibot.tar.bz2とapktoolx.x.x.tar.bz2をダウンロードして解凍
中のapktool.jarとaapt,apktoolをパスの通ってるところに置く。(/usr/local/binとか

$ apktool d demo.apk

すると**res/
の中のxmlがデコードされてる。

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>