3. 解析ツール MobSFの使い方
mobSFにログインすると、以下の画面になるので、中央の「Upload&Analyze」をクリックの上で解析対象であるスパイウェア(APKファイル)を選択します。

そうすると数秒から数分で静的解析が終わり、以下のような見やすいダッシュボードで解析結果が表示されます。

項目が充実しすぎてて、私自身フル活用できていないのですが、本ブログではDECOMPPILED CODE欄を使います。
「View Android Manifest.xml」は、解析対象のアプリが利用しようとしているAPKファイルに含まれるManifest.xmlの中身を確認します。
スマホアプリでは、セキュリティ機能の中核として、ユーザーのプライバシーにかかわる機能やデータ(位置情報データ、カメラ機能、SMS機能など)にアクセスするには、ユーザーの許可を必要とします。これをPermission(許可)といいます。身近な例で言えば、LINEアプリでカメラ機能や写真一覧に利用しようとすると「以下の機能へのアクセスをLINEに許可してください」というポップアップが表示されて「許可」or「キャンセル」と選択させますが、これがPermission機能です。

不正なアプリがユーザーの知らないところでプライバーを侵害すること防ぐために設けられたセキュリティ機能です。
アプリ側の仕様としては、ユーザーのプライバシーにかかわる機能やデータにアクセスするには、その旨をManifest.xmlファイルにおいて宣言(マニフェスト/Manifest)してPermissionを求める必要があります。なので、Manifest.xmlという名称のファイルです。
例えば、以下は通常のアプリのManifest.xmlファイルの中身ですが、"uses-permission"の箇所に注目です。ここにアクセスしたい機能やデータが宣言されています。

静的解析の観点からは、このManifest.xmlの"user-permisson"を見れば、スパイアプリがどの機能やデータを悪用しているかの見込みつきます。
もう一つ使うのは、”View Source”です。これはアプリを解析して、内部のDEX(Dalvik Executable)ファイルを読み取り、人間が理解しやすい「Java風」のソースコードにデコンパイルされた結果が表示されます。
これにより、スパイアプリ内のクラス構造やメソッド、呼び出し関係、文字列定数やリソース参照などを確認でき、開発者が実装したロジックや振る舞いを把握・分析できるようになります。
ただし重要な注意点として、デコンパイルされるコードは 元のソースコードを完全に再現するものではない点を押さえておく必要があります。コンパイル時やビルドプロセスで変数名が削られたり、難読化(obfuscation)が施されている場合、元の識別子や意図した構造は失われることがあり、結果として出力されるのは「元の実装を人間が読み取れる形に変換したもの(=Java風)」にとどまります。
Discussion