読者です 読者をやめる 読者になる 読者になる

かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

APKInspectorで簡単なAndroidアプリを解析してみた

Android tool

環境

  • Android Reverse Engineering Virtual Machine
  • APKInspector

はじめに

今回はAndroidアプリの解析ツールであるAPKInspectorを簡単なアプリを自分で作って,どんなものが表示されるのかを見てみました.勝手に他人のアプリをばらして中を見るのは推奨される行為ではないので,ツールの利用は各自の責任で使用してください.

Android Reverse Enginnering Virtual Machineって?

名前の通り,Androidアプリの解析に必要なツール10種類が入った仮想マシンのイメージです.virtualBox形式のものが配布されていますので,おれはVMWareだぜっ( ー`дー´)キリッって人はNHCとか使って変換してから使ってください.それからこのVMはキーボードの設定がデフォルトでフランス語になっているのでUSなりJPなりに変更してから使ってください.だいぶキー配列が違うのでびっくりしました.

ちなみに,APKInspectorはPythonで開発されているので,Mac上でも動作させることが可能ですが,まだβ版で動作環境を準備するのが非常にめんどくさいので,(自分はPyQT周りでハマって諦めた)上記のVMイメージを使うことを強くおすすめします.ubuntuだと何やら楽っぽいけど...

APKInspectorの起動方法

まずAPKInspectorの起動方法ですが,ホームディレクトリのtools/apkinspectorの中にあります.GUIからポチポチっと起動は現状ではできないので,ターミナルから上記のディレクトリに入って,

python startOT.py


してください.すると次のようなWindowが立ち上がってくるはずです.

解析してみた

でわでは,立ち上げたAPKInspectorを使ってサンプルアプリを解析してみましょう.よくあるHello Worldですね.


Androidアプリのプロジェクトフォルダから,作成されたAPKファイルをツールの入ったVMに移して,APKInspectorに読み込ませます.解析が終わるとまず,次の画像の様にAndroidManifestファイルが表示されます.特に難読化とかはかけていないので,元のものがそのまま表示されているかと思います.


マニュフェストファイルの内容以外にも,JavaのソースコードやDalvikのコード,Javaのバイトコード等が表示できます.難読化とかはかかっていないので,どれも結構綺麗に表示されました.


CFG(制御フロー図)も表示できます.線の色とかは何を表しているのだか全くわかりませんが,,,


Javaのコードなどはたまに表示されないことがあるので,何回もファイルビューで.javaのところをクリックするかAPKInspectorを終了してもう一回やり直すと表示されたりします.

おわりに

APKInspectorを使って簡単なAndroidアプリの解析を体験してみました.ただ,解析対象が簡単すぎるアプリなので,CFGとか簡単過ぎてあまりおもしろくなかったかも...もうちょっと大きなアプリを作って試してみたいなと思います.次はこのVMの中に入っている動的解析ツールのDroidBoxを試してみたいと思います.