- 3rdパーティー提供のライブラリ(.jar)の中身が知りたい
- 自分で作成したapkが正しく作成されているかを確認
内容
- APKの中身を見る(構成)
- jarを解体そしてコードを見る
- APKの中身をみる(コードも)
APKの中身を見る(構成)
apk というのは, 実はただのzipです。.zipに拡張子を変更して, 解凍すると構成するファイルはだいたい見えます これだけではよくわからないので, 解析ツールを使います apktoolというのがあります。 Windows, Linux, Mac バージョンそれぞれあります。私は, Macバージョンで試してみました。 ダウンロードして解凍すると, それぞれ, スクリプト がありますのでそれを利用します./apktool decode xxx.apkMacの場合 これで, フォルダに展開されます, 中身はこんな感じです
xxx | - AndroidManifest.xml | - apktoolyml | - assets | - lib | - res | - smali
jarを解体そしてコードを見る
.jar というのはただのzipであるのは, よく知られています。 jarが構成するクラスファイルを閲覧するには, javaのコマンドを使います。jar -tf xxx.jarxxx.jar が jarファイル しかしこれではソースの中身は見れません。そこでデコンパイルします Java Decompilerというツールがありまして, jarを取り込んで解析してくれます。 JD-GUIなど, GUIツールもあります。 JD-GUIの使い方は非常に簡単なので, 特にここでは触れません。
JD-GUIを使用した例です(Mac OS X) これでjarファイルのソースはばっちり見えます。
APKの中身をみる(コードも)
さて, はじめの方法ではファイル構成は見えても肝心のコードは見えません。 apktoolを使ってもコードは無理です。 そこで, apk内にあるdexをjarに変換して, JD-GUIでjarを展開することで, ソースをみますSteps
- dex2jar を使ってclass.dexをjarに変換
- Java Decompileを利用してjarを読み込む
dexをjarに変換
先ほど, apk をzip にして解凍しました。その時に, class.dexというファイルが生成されています dexの詳しい説明は省きます, Dalvikが読み込むための形式とでもいいましょうか dex2jarは, dexをjarに変換するツールです, ダウンロードして解凍すると スクリプトとjarがあります。Windows, Linux, Macで動作します./dex2jar.sh classes.dexこれで, カレントディレクトリに, jarファイルが生成されますので, あとはJava Decompileで閲覧できます ※それにしてもproguardはやっかいなやつです(ぼやき)
0 件のコメント:
コメントを投稿