Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/341-7b207413

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Androidのコードをのぞく

Androidのパケットをキャプチャしてみる。」で記した方法で、Andorioアプリの外部とのインターフェイスは丸裸にできるが、それだけでリバースエンジニアリングは困難である。やはりソースを見る必要があるので、今回はその方法を記す。

環境は
OSX 10.9.1
Android 4.0.3

(1) AndroidでExtractApks(同じようなアプリは他にもある)をインストールしたら、起動して対象となるアプリを選択し[Save to SD Card]をタップする。
android_01.jpg

(2) AndroidをmacにUSB接続し、Androidの[本体設定]ー>[ストレージ]で[メニューボタン](左の三みたいな奴)を押して、[USBでパソコンニ接続]ー>[メデイアデバイス(MTP)]にチェック。
mitmproxy_004.jpg

(3) Android File Transferを起動。(1)では[Save to SD Card]をタップしたのでSDカードにファイルがあるのかと思いきや、内蔵ストレージの/ExtractAPKs/apks配下にある。ファイルが見えない時があったが、androidの再起やコードの抜き差しなど適当にやれば見えてくる。
android_03.jpg
mac側の適当な場所にコピーする。(例ではデスクトップのtestにhoge.apkというアプリをコピーとする)

(4) こちらのページからapktool-install-macosx-r05-ibot.tar.bz2とapktool1.5.2.tar.bz2をダウンロードしたらそれぞれをダブルクリックで解凍し、apktool1.5.2/apktool.jarをapktool-install-macosx-r05-ibot配下にコピーする。

> pwd
/Users/hoge/Downloads/apktool-install-macosx-r05-ibot
> cp ../apktool1.5.2/apktool.jar .


(5) apktoolでAndroidManifestを作成

> pwd
/Users/hoge/Desktop/test
> ~/Downloads/apktool-install-macosx-r05-ibot/apktool d hoge.apk

これでアプリ名から.apkを取っ払った名称のディレクトリが作成され、配下に色々できるが、とりあえず読めるのはAndroidManifest.xml。

(6) 次に、こちらのページからdex2jar-0.0.9.15.zipをダウンロードしたら、

> pwd
/Users/mac/Desktop/test
> ~/downloads/dex2jar-0.0.9.15/dex2jar.sh hoge.apk
this cmd is deprecated, use the d2j-dex2jar if possible
dex2jar version: translator-0.0.9.15
dex2jar hoge.apk -> hoge_dex2jar.jar
Done.

これでhoge_dex2jar.jarというファイルができたので、こちらのページからJD-GUIをダウンロードして読み込ませれば、それなりに見れる様になるがファイルを開いても所により「// INTERNAL ERROR //」となり見れない場合がある。

(7) hoge_dex2jar.jarをバラす。

~/Desktop/test #pwd
/Users/mac/Desktop/test
~/Desktop/test #unzip *.jar -d ./Classes


snip


replace ./Classes/com/crashlytics/android/aa.class? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

ファイルは上書きさせた。(とりあえず

(8) Classes配下の拡張子.classのファイルをjavaファイルに変換する。
こちらのページからJad 1.5.8g for Mac OS X 10.4.6 on Intel platform (170707 bytes, compiled by GCC 4.0).をダウンロードする。

> pwd
/Users/hoge/Desktop/test
> find Classes -type f -print|xargs ~/downloads/jad158g/jad -s java -d src -r

Couldn't fully decompile method a
などとエラーがでて完璧には再製できないようだが、JD-GUよりは再製されている。
また、コードは難読化されてるかもしれないが、基本的に値の設定に用いられているだけなので、根気よく追いかければ何をしているのかは把握できる。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/341-7b207413

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。