"アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記コンポーネントを起動する起動部と、を備えたことを特徴とするアプリケーション解析装置。アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、通信を行う第1の通信部とを有する端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、を備えたことを特徴とするアプリケーション解析装置。前記起動部によって生成されたインテントによって起動した前記コンポーネントの動作結果が記録されたログに基づいてアプリケーションの動的解析を行う動的解析部をさらに備えたことを特徴とする請求項1に記載のアプリケーション解析装置。前記起動部によって生成されたインテントによって起動した前記コンポーネントの動作結果が記録されたログを前記第1の通信部および前記第2の通信部を介して取得し、前記ログに基づいてアプリケーションの動的解析を行う動的解析部をさらに備えたことを特徴とする請求項2に記載のアプリケーション解析装置。前記アプリケーションファイルをディスアセンブルしてソースファイルを取得するディスアセンブル部と、前記ソースファイルに対して、前記コンポーネントがインテントを受け取るためのIDに関するコードを追加することにより前記ソースファイルを変更する変更部と、前記コードが追加された前記ソースファイルをアセンブルし、前記アプリケーションファイルを生成するアセンブル部と、前記アセンブル部によって生成された前記アプリケーションファイルを前記記憶部に格納するインストール部と、をさらに備え、前記解析部は、前記インストール部によって前記記憶部に格納された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定することを特徴とする請求項1に記載のアプリケーション解析装置。端末装置とアプリケーション解析装置とを備えたアプリケーション解析システムであって、前記端末装置は、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーション解析装置と通信を行う第1の通信部と、を有し、前記アプリケーション解析装置は、前記端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、を有することを特徴とするアプリケーション解析システム。アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記コンポーネントを起動する起動部と、としてコンピュータを機能させるためのプログラム。アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、通信を行う第1の通信部とを有する端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、としてコンピュータを機能させるためのプログラム。Android登録商標上で動作するアプリケーションは、アプリケーションの様々な機能を実現する複数のコンポーネントを構成要素として有する。動的解析の手法では、端末の状態変化に応じて自動的に起動するコンポーネントに関して、解析対象期間中に所望の状態変化が発生しない場合、そのコンポーネントが起動しないため、そのコンポーネントに関するログを取得できず、悪性アプリケーションを見逃してしまう問題がある。また、ユーザがアプリケーションに対して行う操作の全てを網羅するのに限界があり、起動できないコンポーネントが発生してしまう場合もある。本発明は、上述した課題に鑑みてなされたものであって、アプリケーションのコンポーネントを自動的かつ強制的に起動することができるアプリケーション解析装置、アプリケーション解析システム、およびプログラムを提供することを目的とする。本発明は、上記の課題を解決するためになされたもので、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記コンポーネントを起動する起動部と、を備えたことを特徴とするアプリケーション解析装置である。また、本発明は、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、通信を行う第1の通信部とを有する端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、を備えたことを特徴とするアプリケーション解析装置である。また、本発明のアプリケーション解析装置は、前記起動部によって生成されたインテントによって起動した前記コンポーネントの動作結果が記録されたログに基づいてアプリケーションの動的解析を行う動的解析部をさらに備えたことを特徴とする。また、本発明のアプリケーション解析装置は、前記起動部によって生成されたインテントによって起動した前記コンポーネントの動作結果が記録されたログを前記第1の通信部および前記第2の通信部を介して取得し、前記ログに基づいてアプリケーションの動的解析を行う動的解析部をさらに備えたことを特徴とする。また、本発明のアプリケーション解析装置は、前記アプリケーションファイルをディスアセンブルしてソースファイルを取得するディスアセンブル部と、前記ソースファイルに対して、前記コンポーネントがインテントを受け取るためのIDに関するコードを追加することにより前記ソースファイルを変更する変更部と、前記コードが追加された前記ソースファイルをアセンブルし、前記アプリケーションファイルを生成するアセンブル部と、前記アセンブル部によって生成された前記アプリケーションファイルを前記記憶部に格納するインストール部と、をさらに備え、前記解析部は、前記インストール部によって前記記憶部に格納された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定することを特徴とする。また、本発明は、端末装置とアプリケーション解析装置とを備えたアプリケーション解析システムであって、前記端末装置は、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーション解析装置と通信を行う第1の通信部と、を有し、前記アプリケーション解析装置は、前記端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、を有することを特徴とするアプリケーション解析システムである。また、本発明は、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記コンポーネントを起動する起動部と、としてコンピュータを機能させるためのプログラムである。また、本発明は、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルと、アプリケーションが利用する機能や権限が定義されたマニフェストファイルとを含むアプリケーションファイルを記憶する記憶部と、通信を行う第1の通信部とを有する端末装置と通信を行う第2の通信部と、前記第1の通信部および前記第2の通信部を介して前記アプリケーションファイルを取得する取得部と、前記取得部によって取得された前記アプリケーションファイルに含まれる前記マニフェストファイルを解析し、前記実行ファイルに含まれる前記コンポーネントを特定する解析部と、前記解析部によって特定された前記コンポーネントを起動するインテントを生成し、前記第1の通信部および前記第2の通信部を介して前記コンポーネントを起動する起動部と、としてコンピュータを機能させるためのプログラムである。本発明によれば、アプリケーションファイルに含まれるマニフェストファイルを解析することにより、実行ファイルに含まれるコンポーネントを特定し、そのコンポーネントを起動するインテントを生成し、コンポーネントを起動することによって、アプリケーションのコンポーネントを自動的かつ強制的に起動することができる。以下、図面を参照し、本発明の実施形態を説明する。本明細書および図面では、便宜上、必要に応じてandroid登録商標という文字列をandrdという文字列で代用し、Android登録商標という文字列をAndrdという文字列で代用している。すなわち、andrdという文字列はandroid登録商標という文字列と等価であり、Andrdという文字列はAndroid登録商標という文字列と等価である。Android登録商標上で動作するアプリケーションの構成要素であるコンポーネントとして、Activity、Service、BroadcastReceiver、ContentProviderの4つがある。アプリケーションのソースコードにおいて、クラスが継承するコンポーネントが記述されることにより、そのクラスで定義されているメソッドはそのコンポーネントを利用することが可能となる。以下、各コンポーネントについて説明する。Activityは、ユーザに対して視覚的なインターフェースを提供し、画面上でユーザと対話を行うコンポーネントである。アプリケーションを起動すると画面が表示される場合、Activityに記述されたプログラムが動作している。Serviceは、画面を表示する機能を持たずに、バックグラウンドで処理を実行するコンポーネントである。例えば、ユーザが音楽を聞きながらブラウザを起動してインターネットの利用を楽しむ場合、音楽用アプリケーションがServiceを起動することにより、ユーザはインターネットの利用中に音楽を聞くことができる。BroadcastReceiverは、Android登録商標が搭載された端末装置のシステム全体にブロードキャストされるINTENTを受け取るコンポーネントである。例えば、電池残量が減ってきたときに、残りのバッテリー残量が少ないですというメッセージを含む画面を表示するアプリケーションでは、電池残量が変化するときに発行されるBroadcastIntentをBroadcastReceiverにより受け取ったアプリケーションがActivityを起動して画面を表示する。ContentProviderは、アプリケーションが保持するデータを他のコンポーネントでも使用可能にするコンポーネントである。例えば、あるアプリケーションが電話帳のデータを取得したい場合、そのアプリケーションは、電話帳アプリケーションのContentProviderを利用して、電話帳に登録されている情報を取得する。Android登録商標では、インテントIntentという仕組みがある。インテントは、コンポーネント間の情報の受け渡しやコンポーネントの起動など、コンポーネントを繋ぐ役割を果たしている。コンポーネントのうち、Activity、BroadcastReciver、Serviceはインテントによって起動される。コンポーネントを起動するコードがソースファイルに記述されていても、それだけではインテントによってコンポーネントを起動できる状態にはならない。明示的にシステムにインテントを知らせるためには、マニフェストファイルと呼ばれるファイルにおいてコンポーネントの使用を宣言する必要がある。以下の各実施形態では、マニフェストファイルに記述されたコンポーネントの情報を解析し、解析結果に基づいて、アプリケーションに含まれる各コンポーネントにインテントを発行することによって、コンポーネントを強制的に起動する方法を説明する。悪意のユーザがAndroid登録商標のトロイの木馬を他人の端末に導入させる手法として、不正な挙動が発生するように正規のアプリケーションを改竄し、そのアプリケーションをマーケットに公開するという手法がある。悪性アプリケーションの開発者は、正規のアプリケーションの実行ファイルをディスアセンブル逆アセンブルしてソースファイルを取得し、ソースファイルを改竄した後、ソースファイルをアセンブルして悪性アプリケーションの実行ファイルを生成する。不正な挙動が発生するように正規のアプリケーションを改竄する簡単な手法として、以下の2つの手法がある。これまでに出現したトロイの木馬では、2つの手法のどちらかがとられていることが多い。第1の手法は、正規のアプリケーションに対して、BroadcastReceiverを利用して、端末の状態変化が発生したときに不正な挙動が発生するように改竄を施す手法である。この手法は、正規のアプリケーションの実行コードを改竄せずにマニフェストファイルだけを改竄するだけで容易に実現できる。第2の手法は、正規のアプリケーションのソースコードにおいて、アプリケーションが起動した際に最初に呼び出されて実行されるActivityのonCreateメソッドが記述されている箇所に、不正な挙動が発生するメソッドのコードを追記する手法である。onCreateメソッドは、Activity、Service、BroadcastReceiver、ContentProviderが起動した際に最初に呼び出されて実行されるメソッドであり、各コンポーネントを起動するインテントが発行されると、自動的に実行される。アプリケーションが起動した際に最初に呼び出されるメソッドを解析することは容易であり、この手法は、数行のコードを挿入するという容易な手法で実現できる。以下の各実施形態では、アプリケーションが有する全てのコンポーネントを強制的に起動させることによって、上記のいずれかの特徴を有するトロイの木馬型のマルウェアの動的解析を行うことが可能となる。第1の実施形態まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるアプリケーション解析装置の構成を示している。アプリケーション解析装置は、記憶部10、アプリケーション解析部11、動的解析部12を有する。記憶部10は、解析対象のアプリケーションの実行ファイルを含むパッケージファイルアプリケーションファイルを記憶する。図2は、インストール前のアプリケーションのパッケージファイルの構成を示している。パッケージファイルは、例えば拡張子がapkのファイルであり、アプリケーションの機能を実現する構成要素であるコンポーネントを含む実行ファイルF1例えば拡張子がdex、アプリケーションが利用する機能や権限が定義されたマニフェストファイルF2例えば拡張子がxml、アプリケーションが利用するテキストファイルや画像ファイル等の各種リソースファイルF3を含む。アプリケーションがインストールされると、パッケージファイルが展開されて記憶部10に各種ファイルが格納されると共に、記憶部10の所定のフォルダdataappの配下にパッケージファイル自体が格納される。アプリケーション解析部11は、解析対象のアプリケーションのパッケージファイルを用いて、アプリケーションの機能を解析する。本実施形態のアプリケーション解析部11はアプリケーションとして構成されている。アプリケーション解析部11は、インテント発行部110とマニフェスト解析部111を有する。マニフェスト解析部111は、パッケージファイルに含まれるマニフェストファイルを解析し、実行ファイルに含まれるコンポーネントを特定する。インテント発行部110は、マニフェスト解析部111によって特定された各コンポーネントを起動するインテントを発行生成することにより、コンポーネント毎にアプリケーションを起動する。動的解析部12は、起動したアプリケーションの動的解析を行う。ContentProviderは、データを管理するコンポーネントであるため本実施形態ではインテントを発行する対象ではない。ActivityとBroadcastReceiverに関してはインテントを発行することで起動することが可能であるが、Serviceに関しては他のアプリケーションからのインテントがセキュリティの関係上、解析対象のアプリケーションに届かないため起動することができない。本実施形態では、ActivityとBroadcastReceiverを起動する方法を説明する。次に、アプリケーション解析装置の動作を説明する。図3はアプリケーションの解析手順を示している。まず、マニフェスト解析部111は、記憶部10に格納されている解析対象のアプリケーションのパッケージファイルからマニフェストファイルを抽出するステップS100。Android登録商標では、端末にインストールされたアプリケーションのパッケージファイルは、所定のフォルダdataappの配下に保存されている。ステップS100ではマニフェスト解析部111はこのフォルダを参照する。続いて、マニフェスト解析部111はマニフェストファイルの内容を解析し、解析対象のアプリケーションのパッケージ名と、Activityのクラス名と、BroadcastReceiverの起動条件とを取得するステップS105。図4はマニフェストファイルの内容の一例を示している。解析対象のアプリケーションのパッケージ名は、で囲まれた部分内のpackageという文字列に続くとに囲まれた部分に記載されている。図4では、パッケージ名はcomsampleappである。Activityのクラス名は、という文字列とという文字列とで囲まれた部分において、actionという文字列で開始されるタグ内のandrdnameという文字列に続くとに囲まれた部分に記載されている。図4では、BroadcastReceiverの起動条件はandrdintentactionBOOTCOMPLETEDであり、この例ではシステム起動時にBroadcastReceiverが起動することが示されている。続いて、インテント発行部110は、ステップS105で取得された情報に基づいて、解析対象のアプリケーションに含まれるコンポーネントに対するインテントを発行生成し、記憶部10にインストールされているアプリケーションのコンポーネントを起動するステップS110。Activityは、パッケージ名とクラス名を指定してインテントを発行することで起動することができる。具体的には、ステップS110ではインテント発行部110はインテントオブジェクトを生成し、startActivityメソッドを実行する。図5は、Activityを起動するコードの一例を示している。1行目でインテントオブジェクトが生成され、2行目でパッケージ名とクラス名が指定されている。3行目でActivityの起動に必要なフラグが付加され、4行目でstartActivityメソッドが実行され、インテントが発行される。BroadcastReceiverは、起動条件として指定された条件のインテントを発行することで起動することができる。具体的には、ステップS110ではインテント発行部110はインテントオブジェクトを生成し、sendBroadcastメソッドを実行する。図6は、BroadcastReceiverを起動するコードの一例を示している。1行目で起動条件が設定されたインテントオブジェクトが生成され、2行目でsendBroadcastメソッドが実行され、インテントが発行される。上記のようにして、解析対象のアプリケーションを構成するコンポーネントが起動した後、動的解析部12は、コンポーネントの動作結果が記録されたログに基づいてアプリケーションの動的解析を行う。アプリケーションのログは、straceやLogcat等のコマンドを実行することにより取得することができる。上述したように、本実施形態によれば、パッケージファイルに含まれるマニフェストファイルを解析することにより、アプリケーションに含まれるActivityとBroadcastReceiverのコンポーネントを特定し、そのコンポーネントを起動するインテントを生成し、コンポーネントを起動することによって、アプリケーションのコンポーネントを自動的かつ強制的に起動することができる。このため、従来の動的解析の手法では解析することが困難であったコンポーネントを起動できるようになり、動的解析の網羅性を高めることができる。また、評価者の手動操作によって起動していたコンポーネントを自動的に起動することによって、評価コストを削減することができる。第2の実施形態次に、本発明の第2の実施形態を説明する。Android登録商標では、UIDと呼ばれる、アプリケーション毎に異なるIDがアプリケーションに与えられる。UIDが異なるアプリケーション間ではリソースを共有することができず、Serviceに関しては、UIDが異なる他のアプリケーションからのインテントが解析対象のアプリケーションに届かない。しかし、sharedUserIdという仕組みを利用することで、2つのアプリケーションを同一のUIDで動作させることが可能となる。これによって、2つのアプリケーション間でリソースを共有し、Serviceのインテントによりコンポーネントを起動することができる。図7は、本実施形態によるアプリケーション解析装置の構成を示している。アプリケーション解析部11がインテント発行部110およびマニフェスト解析部111に加えてアプリケーション変更部112を有することが第1の実施形態と異なる。これ以外の構成は、第1の実施形態で説明した構成と同様である。図8はアプリケーション変更部112の構成を示している。アプリケーション変更部112は、ディスアセンブル部112a、マニフェスト変更部112b、アセンブル部112c、インストール部112dを有する。ディスアセンブル部112aは、解析対象のパッケージファイルをディスアセンブル逆アセンブルし、ソースファイルを取得する。マニフェスト変更部112bは、ディスアセンブルしたソースファイルに含まれるマニフェストファイルに、sharedUserIdのコードを追加することによって、マニフェストファイルを変更する。アセンブル部112cは、変更後のマニフェストファイルを含むソースファイルをアセンブルし、パッケージファイルを生成する。インストール部112dはアセンブル後のパッケージファイルを用いて記憶部10にアプリケーションをインストールする。前述したように、アプリケーションがインストールされると、パッケージファイルが展開されて記憶部10に各種ファイルが格納されると共に、記憶部10の所定のフォルダdataappの配下にパッケージファイル自体が格納される。次に、アプリケーション解析装置の動作を説明する。図9はアプリケーションの解析手順を示している。まず、Serviceのインテントによってコンポーネントを起動できるように、アプリケーション変更部112が解析対象のアプリケーションのパッケージファイルを変更するステップS200。ステップS200では具体的には以下の処理が行われる。ディスアセンブル部112aは、解析対象のパッケージファイルをディスアセンブルし、パッケージファイルのソースファイルを取得するステップS200a。ディスアセンブルを行う代表的なツールとして、ApktoolやDedexerがある。続いて、マニフェスト変更部112bは、ディスアセンブルしたソースファイルに含まれるマニフェストファイルにコードを追加することによって、マニフェストファイルを変更するステップS200b。具体的には、ステップS200bではマニフェスト変更部112bは、マニフェストファイルにおいて、manifestという文字列で開始されるタグ内にsharedUserIdaaabbbという文字列コードを追加する。aaabbbはUIDの一例である。アプリケーション解析部11を構成するアプリケーションのパッケージファイルに含まれるマニフェストファイルに記述されているsharedUserIdのコードと同一のコードが解析対象のアプリケーションのマニフェストファイルに追加される。つまり、アプリケーション解析部11を構成するアプリケーションと、変更後の解析対象のアプリケーションは同一のUIDを有することになる。続いて、アセンブル部112cは、アプリケーション解析部11を構成するアプリケーションのアセンブル時に使用した証明書と同一の証明書を使用して、変更後のマニフェストファイルを含むソースファイルに署名を施してアセンブルを行い、パッケージファイルを生成するステップS200c。続いて、インストール部112dはアセンブル後のパッケージファイルを用いて記憶部10にアプリケーションをインストールするステップS200d。パッケージファイルの変更後、マニフェスト解析部111は、記憶部10にインストールされた解析対象のアプリケーションのパッケージファイルからマニフェストファイルを抽出するステップS205。端末にインストールされたアプリケーションのパッケージファイルは、所定のフォルダdataappの配下に保存されているので、ステップS205ではマニフェスト解析部111はこのフォルダを参照する。続いて、マニフェスト解析部111はマニフェストファイルの内容を解析し、解析対象のアプリケーションのパッケージ名と、Serviceのクラス名とを取得するステップS210。解析対象のアプリケーションのパッケージ名は、manifestという文字列で開始されるタグ内のpackageという文字列に続くとに囲まれた部分に記載されている。図4では、パッケージ名はcomsampleappである。Serviceのクラス名は、serviceという文字列で開始されるタグ内のandrdnameという文字列に続くとに囲まれた部分に記載されている。図4では、クラス名はMainServiceである。続いて、インテント発行部110は、ステップS210で取得された情報に基づいて、解析対象のアプリケーションに含まれるコンポーネントに対するインテントを発行生成し、記憶部10にインストールされているアプリケーションのコンポーネントを起動するステップS215。アプリケーション解析部11を構成するアプリケーションと解析対象のアプリケーションが同一のUIDで動作する場合、Serviceは、パッケージ名とクラス名を指定してインテントを発行することで起動することができる。具体的には、ステップS215ではインテント発行部110はインテントオブジェクトを生成し、startServiceメソッドを実行する。図10は、Serviceを起動するコードの一例を示している。1行目でパッケージ名とクラス名が設定されたインテントオブジェクトが生成され、2行目でstartServiceメソッドが実行され、インテントが発行される。上記のようにして、解析対象のアプリケーションを構成するコンポーネントが起動した後、動的解析部12は、コンポーネントの動作結果が記録されたログに基づいてアプリケーションの動的解析を行う。上述したように、本実施形態によれば、Serviceに関して、アプリケーションのコンポーネントを自動的かつ強制的に起動することができる。なお、アプリケーション解析部11が第1の実施形態の機能と第2の実施形態の機能との両方を備えていてもよい。第3の実施形態次に、本発明の第3の実施形態を説明する。第3の実施形態では、解析対象のアプリケーションが起動する端末装置と、アプリケーション解析装置とを有するアプリケーション解析システムについて説明する。図11は、本実施形態によるアプリケーション解析システムの構成を示している。アプリケーション解析システムは端末装置1とアプリケーション解析装置2を有する。端末装置1は、記憶部10と通信部13を有する。アプリケーション解析装置2は、アプリケーション解析部20、記憶部21、動的解析部22を有する。アプリケーション解析装置2は、例えばPCPersonalComputerである。記憶部10は、解析対象のアプリケーションの実行ファイルを含むパッケージファイルアプリケーションファイルを記憶する。通信部13はアプリケーション解析装置2と通信を行う。アプリケーション解析部20は、解析対象のアプリケーションのパッケージファイルを用いて、アプリケーションの機能を解析する。本実施形態のアプリケーション解析部20はアプリケーションとして構成されている。アプリケーション解析部20は、通信部200、取得部201、インテント発行部202、マニフェスト解析部203を有する。通信部200は端末装置1と通信を行う。端末装置1とアプリケーション解析装置2の通信は、adbInterfaceを用いて行われる。adbInterfaceは、PCと、Android登録商標で動作する端末装置とを接続し、PCで動作するシェルから端末装置を操作できるインターフェースであり、Android登録商標のSDKSoftwareDevelopmentKitにツールとして用意されている。取得部201は、通信部200を介して端末装置1の通信部13と通信を行い、記憶部10に格納されている解析対象のアプリケーションのパッケージファイルと、起動したアプリケーションのログとを取得する。マニフェスト解析部203は、パッケージファイルに含まれるマニフェストファイルを解析し、実行ファイルに含まれるコンポーネントを特定する。インテント発行部202は、マニフェスト解析部203によって特定された各コンポーネントを起動するインテントを発行生成することにより、コンポーネント毎にアプリケーションを起動する。記憶部21は、アプリケーションの解析時に端末装置1から取得される解析対象のアプリケーションのパッケージファイルを記憶する。動的解析部22は、起動したアプリケーションの動的解析を行う。次に、アプリケーション解析システムの動作を説明する。図12はアプリケーションの解析手順を示している。まず、取得部201は、通信部200を介して端末装置1の通信部13と通信を行い、記憶部10に格納されている解析対象のアプリケーションのパッケージファイルのコピーを取得するステップS300。端末装置1にインストールされたアプリケーションのパッケージファイルは、所定のフォルダdataappの配下に保存されているので、このフォルダを参照することにより、パッケージファイルを取得することができる。adbInterfaceでは、PCから端末装置のデータを取得するadbpullコマンドがある。例えばadbpulldataappAAAapkというコマンドを実行することによりパッケージファイルを取得することができる。AAAapkは取得対象のパッケージファイルのファイル名である。取得されたパッケージファイルは記憶部21に格納される。続いて、マニフェスト解析部111は、記憶部21に格納されている解析対象のアプリケーションのパッケージファイルからマニフェストファイルを抽出するステップS305。Android登録商標のSDKでは、マニフェストファイルを抽出するツールとしてaaptが用意されている。ステップS305ではマニフェスト解析部111は、aaptを用いてマニフェストファイルを抽出する。例えば、aaptdxmltreeAAAapkAndrdManifestxmlというコマンドを実行することによりマニフェストファイルを抽出することができる。AAAapkは取得対象のパッケージファイルのファイル名である。続いて、マニフェスト解析部203はマニフェストファイルの内容を解析し、解析対象のアプリケーションのパッケージ名と、Activityのクラス名と、BroadcastReceiverの起動条件とを取得するステップS310。ステップS310で取得される各情報の内容は、第1の実施形態で説明した内容と同様である。続いて、インテント発行部202は、ステップS310で取得された情報に基づいて、解析対象のアプリケーションに含まれるコンポーネントに対するインテントを発行生成する。インテント発行部202は、発行したインテントを、通信部200を介して端末装置1の通信部13へ送信し、記憶部10にインストールされているアプリケーションのコンポーネントを起動するステップS315。Activityは、パッケージ名とクラス名を指定してインテントを発行することで起動することができる。Android登録商標では、adbInterfaceでインテントを送信するコマンドとして、amコマンドがある。例えば、amstart-ncomsampleappcomsampleappMainActivityというコマンドを実行することによりインテントを送信することができる。BroadcastReceiverは、起動条件として指定された条件のインテントを発行することで起動することができる。Activityのインテントと同様に、amコマンドを利用してBroadcastReceiverのインテントを送信することができる。例えば、ambroadcast-aandrdintentactionBOOTCOMPLETEDというコマンドを実行することによりインテントを送信することができる。上記のようにして、解析対象のアプリケーションを構成するコンポーネントが起動した後、動的解析部22は、通信部200を介して端末装置1の通信部13と通信を行い、コンポーネントの動作結果が記録されたログを端末装置1から取得し、取得したログに基づいてアプリケーションの動的解析を行う。上記ではアプリケーション解析装置2で動的解析が行われるが、端末装置1で動的解析を行ってもよい。図13は、本実施形態によるアプリケーション解析システムの他の構成例を示している。図13に示すアプリケーション解析システムでは、端末装置1が動的解析部12を有している。アプリケーション解析部20は、解析対象のアプリケーションを構成するコンポーネントを起動した後、通信部200を介して端末装置1の通信部13と通信を行い、動的解析部12に動的解析の指示を与える。指示を受けた動的解析部12は、コンポーネントの動作結果が記録されたログに基づいてアプリケーションの動的解析を行う。上述したように、本実施形態によれば、ActivityとBroadcastReceiverに関して、解析対象のアプリケーションがインストールされた端末装置1と接続されたアプリケーション解析装置2からアプリケーションのコンポーネントを自動的かつ強制的に起動することができる。上述した各実施形態のアプリケーション解析部11,20はアプリケーションとして構成されている。アプリケーション解析部11,20を構成するアプリケーションのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータ上記の各実施形態のアプリケーション解析装置に読み込ませ、実行させることにより、アプリケーション解析部11,20は、規定された処理を実行する。ここで、コンピュータは、WWWシステムを利用している場合であれば、ホームページ提供環境あるいは表示環境も含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリRAMのように、一定時間プログラムを保持しているものも含むものとする。また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク通信網や電話回線等の通信回線通信線のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル差分プログラムであってもよい。以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。"