« Android Emulator から PC 側の localhost へ | トップページ | ガイガーカウンター »

2011.02.19

他人様の Android アプリを覗いてみよう

いつの頃からか知らないけど、Android SDK に dexdump.exe が付いてることに気付いた。

昔は、Device 側にしか無かったので、disassemble しようと思うと、Windows 上で classes.dex を抽出して、Device 側に push して、dexdump して、Windows 側に pull する、という面倒なことが必要だった。
(たぶん、Device 側にあったというのも DevPhone だったからだと思う。市販 Device の ROM には入ってないと思われる。(少なくとも Desire HD には入っていない。))

でも、Windows 側にあるならメチャ簡単じゃん、ということで、Windows 上で disassemble する方法のメモ。

■他人様の Android アプリを取り出す
/data/app/* か /data/app-private/* にアプリの apk が入っているので、それを
adb pull /data/app/hoge.hige.hage.apk .
として取り出す。
rooted じゃないと取り出せないはず。
/data/app/* の方は、ファイル名(たぶん、パッケージ名-1.apk)が分かれば取り出せる気もする。

■classes.dex を取り出す
取り出した hoge.hige.hage.apk を hoge.hige.hage.zip に名前を変えて、解凍して、classes.dex を取り出す
device 側の /data/dalvik-cache/* にも *.dex があるから、これを取り出した方が早いかも?

■dexdump.exe にかける
<SDK_DIR>\platforms\android-8\tools\dexdump –d –f –h classes.dex > undex.txt
とするだけ。
<SDK_DIR> は、c:\android-sdk とかインストールしたところ。 
オプションは適当に。
<SDK_DIR>\platform-tools に path を通してると思うけど、ここにある dexdump.exe はちゃんと逆汗してくれない気がする。ので、フルパスで書いて platforms 以下のを使った方がいい。

最近は、ProGurard かけられてるのが多いから、簡単には理解できないけど、まぁ、勉強にはなると思う。
とりあえず、invoke- (invoke-virtual, invoke-static, invoke-super, invoke-direct とかがある)で検索すれば、処理の流れはわかるよ。

#hoge, piyo, fuga, hogera とするのが一般的だよな。
#hoge, hige, hgae は変だと思う。結構使うけどw 見分け難いし使うべきじゃないよね。
#やっぱ、foo, bar, baz, qux だよなとは思ふ。

|

« Android Emulator から PC 側の localhost へ | トップページ | ガイガーカウンター »

Android」カテゴリの記事

コメント

i be impaired to it 他人様の Android アプリを覗いてみよう: 最近のちょっ得 now im your rss reader

投稿: free movie download | 2011.03.20 19:47

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/50916602

この記事へのトラックバック一覧です: 他人様の Android アプリを覗いてみよう:

» This is my problem [mobile software]
Superb webpage, I like how your website looks! The layout is amazing! [続きを読む]

受信: 2011.03.08 16:51

« Android Emulator から PC 側の localhost へ | トップページ | ガイガーカウンター »