(57)【要約】  ソフトウェアが動作可能な計算機環境を効率よく解析するソフトウェア解析装置を提供する。ソフトウェア解析装置５０１は、仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、該構成要素を有する該仮想計算機を設定する構成設定部５０２と、設定された該仮想計算機を起動する起動部５０３と、該対象ソフトウェアが実行されているか否かを判定する処理に際して該仮想計算機の外部において実行する実行処理と、該実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、該タイミングに該実行処理を実行し、実行した結果に関して該判定条件を満たしているか否かを判定し、該判定条件を満たしている場合に、該対象ソフトウェアが該仮想計算機において実行されていると判定し、該判定条件を満たしていない場合に、該対象ソフトウェアが該仮想計算機において実行されていないと判定する判定部５０４と、該構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を構成設定部５０２によって該設定情報に設定し、設定された設定情報に対して、判定部５０４が判定する判定結果と、該設定情報セットに関して、ある態様の次の態様を構成設定部５０２によって該設定情報に設定し、設定された設定情報に対して、判定部５０４が判定する判定結果とが異なる場合に、該ある態様または該次の態様を出力する制御部５０５とを有する。
2017094519.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定手段と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御手段と
を備えるソフトウェア解析装置。
【請求項２】
対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと、前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報に含まれている前記手順に従い、前記記憶部に前記ファイルを設定するソフトウェア設定手段
をさらに備え、
前記構成設定手段は、前記ソフトウェア設定手段が設定した前記記憶部を含む前記構成要素を有する前記仮想計算機を設定する
請求項１に記載のソフトウェア解析装置。
【請求項３】
前記制御手段は、前記ある態様に関して、前記判定結果が、前記対象ソフトウェアが実行されていないことを表し、前記ある態様の次の態様に関して、前記判定結果が、前記対象ソフトウェアが実行されていることを表す場合に、前記ある態様の次の態様を出力する
請求項１または請求項２に記載のソフトウェア解析装置。
【請求項４】
前記対象ソフトウェアに関して、前記実行処理が異なる複数の前記判定情報が与えられた場合に、前記判定手段は、複数の前記判定情報に含まれている各判定情報に関して判定する
請求項１乃至請求項３のいずれかに記載のソフトウェア判定装置。
【請求項５】
前記設定情報セットを格納している設定情報記憶手段
をさらに備える請求項１乃至請求項４のいずれかに記載のソフトウェア解析装置。
【請求項６】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するメモリの容量を表す値が昇順に並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項７】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するプロセッサが処理可能な命令数が少ない順に、前記プロセッサの名称が並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項８】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するプロセッサの台数が昇順に並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項９】
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定し、
設定された前記仮想計算機を起動し、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定し、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力するソフトウェア解析方法。
【請求項１０】
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定機能と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に関して、前記判定機能を用いて判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に対して、前記判定機能を用いて判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御機能と
をコンピュータに実現させるソフトウェア解析プログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ソフトウェアが動作可能な状況を効率よく解析可能なソフトウェア解析装置等に関する。
【背景技術】
【０００２】
静的解析プログラムは、コンピュータソフトウェア（以降、「ソフトウェア」と表す）に関して、オブジェクトプログラムを実行することなく、ソースプログラムを解析することにより、該ソフトウェアに含まれている不具合等を解析する。静的解析プログラムは、ソースプログラムにおいて不具合であると判定される箇所（フロー）を指摘することにより、ソフトウェアの開発を支援する情報を提供する。【０００３】
たとえば、特許文献１は、静的解析プログラムを用いてソースプログラムを解析した結果に基づいて、警告文を出力する解析装置を開示する。該解析装置は、ソースプログラムを解析した結果を表すファイルを、複数のバージョンに関してそれぞれ作成し、該ファイル間の差分を作成する。次に、該解析装置は、作成した差分に関連付けされた警告文を出力する。【０００４】
一方、ソフトウェアに関するソースプログラムが開示されていない場合に、該ソフトウェアを解析する手法としてリバースエンジニアリングが知られている。リバースエンジニアリングにおいては、ソフトウェアのオブジェクトプログラムを逆アセンブルすることにより、ソフトウェアの機能が解明される。また、不正な動作を実行するソフトウェアを表すマルウェアをリバースエンジニアリングすることにより、マルウェアに対する対策を講じることができる。【０００５】
たとえば、特許文献２には、マルウェアが内包されているソフトウェアからマルウェアを抽出する技術が開示されている。また、特許文献３及び特許文献４には、仮想計算機においてソフトウェアを解析することにより、該ソフトウェアを解析する技術が開示されている。【０００６】
特許文献２は、ソフトウェアが実行するプロセスがメモリにおいてアクセスした領域の変化に基づき、ソフトウェアからマルウェアを抽出する抽出装置を開示する。【０００７】
特許文献３は、ソフトウェアを解析するプログラム及び検証ツールを用いて、ソフトウェアを検証する検証サービス提供システムを開示する。該提供システムは、プログラムを解析する解析ツールを仮想計算機に導入し、該仮想計算機において、導入した解析ツールを用いてソフトウェアを解析する。【０００８】
特許文献４は、マルウェア候補サンプルが実行する処理に伴い仮想計算機において出力されるセッション情報等に基づき、該サンプルがマルウェアであるか否かを判定するソフトウェア解析装置を開示する。該ソフトウェア解析装置は、該サンプルがマルウェアであると判定する場合に、該マルウェアを識別可能なシグネチャを出力する。【０００９】
上記特許文献２に開示された抽出装置は、ソフトウェアを実行することによって、該ソフトウェアに含まれているオリジナルコードの候補を抽出する。該抽出装置は、抽出したオリジナルコードの候補がメモリにおいてアクセスしたアドレスの範囲を調べ、該アドレスの範囲の変化率が所定条件を満たすか否かに基づいて、該オリジナルコードの候補がオリジナルコードであるか否かを判定する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−１２６８６６号公報
【特許文献２】特許第５３８９７３４号公報
【特許文献３】特許第５５４０１６０号公報
【特許文献４】特表２０１４−５１９１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
たとえば、特許文献１に開示される解析装置を用いて、ソフトウェアに関するソースプログラムを解析することにより、ある計算機環境においてソフトウェアが動作するか否かを検証することができる。尚、計算機環境は、ハードウェアを構成する構成要素、計算機にインストールされているソフトウェア等が組み合わせられた態様を表す。【００１２】
しかし、上述したようないずれの装置を用いてソフトウェアを解析したとしても、ソフトウェアの動作を検証する処理に多くの処理量（計算量）を要する。たとえば、ソースプログラムを解析する解析作業においては、１つ１つの命令文を解析する必要があるので、該解析作業に多くの処理量を要する。また、オブジェクトプログラムをリバースエンジニアリングする場合には、逆アセンブルすることにより得られる結果を解析するのに多くの人手（作業、処理量）を要する。【００１３】
そこで、本発明の主たる目的の１つは、ソフトウェアが動作可能な計算機環境を効率よく解析可能なソフトウェア解析装置等を提供することである。
【課題を解決するための手段】
【００１４】
前述の目的を達成するために、本発明の一態様において、ソフトウェア解析装置は、
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定手段と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御手段と
を備える。【００１５】
また、本発明の他の見地として、ソフトウェア解析方法は、
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定し、
設定された前記仮想計算機を起動し、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定し、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する。【００１６】
また、本発明の他の見地として、ソフトウェア解析プログラムは、
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定機能と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に関して、前記判定機能を用いて判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に対して、前記判定機能を用いて判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御機能と
をコンピュータに実現させる。【００１７】
さらに、同目的は、係るソフトウェア解析プログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１８】
本発明に係るソフトウェア解析装置等によれば、ソフトウェアが動作可能な計算機環境を効率よく解析することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。
【図３】設定情報が有する構成の一例を概念的に表す図である。
【図４】ソフトウェア情報が有する構成の一例を概念的に表す図である。
【図５】判定情報が有する構成の一例を概念的に表す図である。
【図６】本発明の第２の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。
【図７】第２の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。
【図８】設定情報セットが有する構成の一例を概念的に表す図である。
【図９】表示部に表示される設定情報の一例を概念的に表す図である。
【図１０】本発明の第３の実施形態に係るソフトウェア解析装置が有する構成を示すブロック図である。
【図１１】第３の実施形態に係るソフトウェア解析装置における処理の流れを示すフローチャートである。
【図１２】ソフトウェア情報セットが有する構成の一例を概念的に表す図である。
【図１３】判定情報セットが有する構成の一例を概念的に表す図である。
【図１４】第３の実施形態に係るユーザインターフェースの一例を表す図である。
【図１５】本発明の第４の実施形態に係るソフトウェア解析装置が有する構成を示すブロック図である。
【図１６】第４の実施形態に係るソフトウェア解析装置のうち、構成設定部、起動部、及び、判定部における処理の流れを示すフローチャートである。
【図１７】第４の実施形態に係るソフトウェア解析装置のうち、制御部における処理の流れを示すフローチャートである。
【図１８】設定情報セットの一例を概念的に表す図である。
【図１９】設定情報セットの一例を概念的に表す図である。
【図２０】本発明の第５の実施形態に係るソフトウェア解析装置が有する構成を示すブロック図である。
【図２１】第５の実施形態に係るソフトウェア解析装置における処理の流れを示すフローチャートである。
【図２２】本発明の各実施形態に係るソフトウェア判定装置等を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２１】
＜第１の実施形態＞
本発明の第１の実施形態に係るソフトウェア判定装置が有する構成と、ソフトウェア判定装置が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るソフトウェア判定装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係るソフトウェア判定装置１０１における処理の流れを示すフローチャートである。
【００２２】
第１の実施形態に係るソフトウェア判定装置１０１は、構成設定部１０２と、ソフトウェア設定部１０３と、起動部１０４と、判定部１０５とを有する。
【００２３】
ソフトウェア判定装置１０１は、仮想計算機１０６と通信接続することができる。仮想計算機１０６は、情報を不揮発的に記憶可能な記憶部１０７を有する。仮想計算機１０６において実行されている処理に関するデータは、メインメモリ（以降、「メモリ」と表す）１０８に記憶されている。処理に関するデータは、たとえば、ソフトウェアが処理する対象となっている処理データ（情報）、該ソフトウェアを表す実行プログラム等である。
【００２４】
構成設定部１０２は、図３に例示されているような設定情報と、図４に例示されているようなソフトウェア情報と、図５に例示されているような判定情報とを受信するのに応じて、図３に例示されているような設定情報に基づき仮想計算機１０６を設定する（ステップＳ１０１）。すなわち、構成設定部１０２は、設定情報と、ソフトウェア情報と、判定情報とが与えられるのに応じて、与えられた情報（たとえば、設定情報）に基づき、仮想計算機１０６を設定する。図３は、設定情報が有する構成の一例を概念的に表す図である。図４は、ソフトウェア情報が有する構成の一例を概念的に表す図である。図５は、判定情報が有する構成の一例を概念的に表す図である。図３乃至図５を参照しながら設定情報、ソフトウェア情報、及び、判定情報を説明した後に、図２に示す処理について詳述する。
【００２５】
図３を参照しながら設定情報について説明する。設定情報は、仮想計算機１０６に含まれる構成要素を表す名称（識別子）と、該構成要素に設定する値とが関連付けされた情報である。言い換えると、設定情報は、仮想計算機が有する構成要素に対して１つの態様を設定する場合に基となる情報を表す。図３に示された例を参照すると、たとえば、設定情報は、名称「プロセッサの数」と、設定値「４」とが関連付けされた情報を含む。これは、仮想計算機１０６を構成するプロセッサの台数を４台に設定することを表す。また、設定情報は、名称「ディスプレイ解像度（縦）」と、設定値「４８０」とが関連付けされた情報を含む。これは、仮想計算機１０６を構成するディスプレイにおける縦方向の解像度を４８０に設定することを表す。ただし、ＩＰは、インターネットプロトコルを表す。ＯＳは、オペレーティングシステムを表す。
【００２６】
次に、図４を参照しながらソフトウェア情報について説明する。ソフトウェア情報は、判定対象であるソフトウェア（以降、「対象ソフトウェア」と表す）に関するファイルと、該ファイルを記憶部１０７に設定する設定手順とが関連付けされた情報である。ソフトウェア情報においては、該ファイルと、該設定手順とに加え、さらに、該対象ソフトウェアの名称（識別子）が関連付けされてもよい。図４に示された例を参照すると、ソフトウェア情報には、以下の３つの項目が含まれている。すなわち、
名称「Ａ」、
ファイル「ＡＡＡ．ｅｘｅ，ＢＢＢ．ｄｌｌ，ＣＣＣ．ｄｌｌ」、
設定手順「「ＡＡＡ．ｅｘｅ」を「￥１１１￥２２２￥３３３」に「ＡＡＡ．ｅｘｅ」として保存する。ＢＢＢ．ｄｌｌを「￥１１１」に保存する」。
【００２７】
ただし、「￥」は、英語キーボードでは、いわゆる、バックスラッシュに相当（対応）する。「￥」は、ファイル等を格納する場所を表すディレクトリ（フォルダ）の構成を表す。
【００２８】
図４に例示されたソフトウェア情報は、ソフトウェア「Ａ」（この例において、対象ソフトウェア）が、ファイル「ＡＡＡ．ｅｘｅ」、ファイル「ＢＢＢ．ｄｌｌ」、及び、ファイル「ＣＣＣ．ｄｌｌ」を含むことを表す。該ファイルは、たとえば、ソフトウェアＡに含まれているファイルではなく、ソフトウェア「Ａ」が参照する入出力ファイルであってもよい。また、設定手順は、記憶部１０７において、「ＡＡＡ．ｅｘｅ」を「￥１１１￥２２２￥３３３」に「ＡＡＡ．ｅｘｅ」なる名称にて保存し、さらに、「ＢＢＢ．ｄｌｌ」を「￥１１１」に保存することにより、ソフトウェア「Ａ」を実行する仮想計算機１０６を設定できることを表す。
【００２９】
次に、図５を参照しながら判定情報について説明する。判定情報は、仮想計算機１０６において実行する処理を表す実行処理と、該実行処理を実行するタイミングと、該実行処理の結果に基づいて対象ソフトウェアが実行されているか否かを判定する条件を表す判定条件とが関連付けされた情報である。判定情報においては、該実行処理と、該タイミングと、該判定条件とに加え、さらに、ソフトウェアの名称が関連付けされてもよい。判定情報における判定条件は、対象ソフトウェアが仮想計算機１０６において実行されているか否かを判定する場合に参照される条件を表す。
【００３０】
たとえば、図５に示された例の場合、判定情報は、ソフトウェアＡに関する判定情報を表す。この場合に、ソフトウェアＡが仮想計算機１０６において実行されているか否かを判定する処理は、たとえば、次に示す項目１及び項目２を順に実行することにより、実現することができる。すなわち、
（項目１）仮想計算機１０６を起動してから１０分経過した後に、仮想計算機１０６に対する応答時間を計測する（図５における列「実行処理」及び列「実行処理を実行するタイミング」）、
（項目２）計測された応答時間が３秒以上である場合には、ソフトウェアＡが実行されていると判定する。計測された応答時間が３秒未満である場合には、ソフトウェアＡが実行されていないと判定する（図５における列「判定条件」）。
【００３１】
本発明の各実施形態において、判定情報に含まれている実行処理は、仮想計算機１０６を対象として実行する処理であるとする。すなわち、該実行処理は、仮想計算機１０６内において実行される処理ではなく、仮想計算機１０６を外部から監視する処理であるとする。たとえば、該実行処理は、仮想計算機１０６に関する応答時間を計測する、メモリ１０８をダンプする、または、仮想計算機１０６に関して送受信される通信内容を読み取る等の処理である。
【００３２】
図２乃至図５に示された例を参照しながら、本実施形態に係るソフトウェア判定装置１０１について詳述する。構成設定部１０２は、図３に例示された設定情報を受信する場合に、ステップＳ１０１にて、たとえば、受信した設定情報に従いプロセッサの数を４に設定することにより、仮想計算機１０６に含まれる構成要素を設定する。
【００３３】
次に、ソフトウェア設定部１０３は、図４に例示されたソフトウェア情報に含まれている手順に従い、仮想計算機１０６が有する構成要素の１つである記憶部１０７に、該手順に関連付けされたファイルを設定する（ステップＳ１０２）。この結果、仮想計算機１０６は、記憶部１０７からソフトウェア設定部１０３にて設定されたファイルを読み取り、読み取ったファイルを実行することによって、該対象ソフトウェアを起動することができる。
【００３４】
次に、起動部１０４は、仮想計算機１０６を起動する（ステップＳ１０３）。起動部１０４は、さらに、ソフトウェア設定部１０３にて設定された対象ソフトウェアを起動してもよい。ソフトウェア情報がマルウェアに関する情報である場合には、起動部１０４は、対象ソフトウェアを起動しない設定であってもよい。この場合に、仮想計算機１０６が起動するに応じて、対象ソフトウェアは起動する。
【００３５】
次に、判定部１０５は、図５に例示された判定情報に基づき、該判定情報に含まれているタイミングに、該タイミングに関連付けされた実行処理を実行する（ステップＳ１０４）。たとえば、該実行処理は、仮想計算機１０６の応答時間を計測する処理、メモリ１０８をダンプする処理、または、仮想計算機１０６に関して送受信される通信内容を読み取る等の処理である。該実行処理は、たとえば、ソフトウェア「Ａ」が外部と通信する機能を有している場合に、ソフトウェアＡに信号を送信した後に、ソフトウェアＡが該信号に応答するまでの時間を計測する処理である。
【００３６】
次に、判定部１０５は、実行処理に関連付けされた判定条件に基づき、対象ソフトウェアが仮想計算機１０６において実行されているか否かを、該実行処理を実行した結果に基づいて判定する（ステップＳ１０５）。判定部１０５は、該実行処理の実行結果が該判定条件を満たしていると判定した場合に（ステップＳ１０５にてＹＥＳ）、対象ソフトウェアが実行されていると判定する（ステップＳ１０６）。判定部１０５は、該実行処理の実行結果が該判定条件を満たしていないと判定した場合に（ステップＳ１０５にてＮＯ）、対象ソフトウェアが実行されていないと判定する（ステップＳ１０７）。
【００３７】
図５に例示された判定情報の場合に、判定部１０５は、ステップＳ１０３にて仮想計算機１０６が起動してから１０分経過した後に、仮想計算機１０６の応答時間を計測する。次に、判定部１０５は、計測された応答時間が３秒以上であるか否かを判定することにより、仮想計算機１０６において、対象ソフトウェアが実行されているか否かを判定する。
【００３８】
尚、判定情報が、１つの対象ソフトウェアに関して複数の実行処理（タイミング、判定条件）を含む場合には、判定部１０５は、各実行処理に関して、ステップＳ１０４乃至ステップＳ１０７に示す処理を実行する。
【００３９】
次に、第１の実施形態に係るソフトウェア判定装置１０１に関する効果について説明する。
【００４０】
ソフトウェア判定装置１０１によれば、対象ソフトウェアの動作を容易に検証することができる。この理由は、ソフトウェア判定装置１０１が、ソースプログラムを解析することなく、設定情報に基づき設定される仮想計算機１０６を起動し、起動後に実行する実行処理の実行結果等に基づき、該対象ソフトウェアが実行されているか否かを判定するからである。
【００４１】
「背景技術」にて説明したように、ソースプログラムを解析する処理には多くの処理を要する。これに対して、実行結果等に基づき対象ソフトウェアが実行されているか否かを判定する判定処理は、ある判定条件を満たすか否かを判定することにより実行される処理であるので、該処理には多くの処理を必要としない。したがって、本実施形態に係るソフトウェア判定装置１０１によれば、対象ソフトウェアの動作を容易に検証することができる。
【００４２】
また、ソフトウェア判定装置１０１は、仮想計算機１０６の外部から実行処理をするので、対象ソフトウェアが実行されているか否かを解析する解析ソフトウェアを仮想計算機１０６に設定しない。たとえば、該解析ソフトウェアが、判定対象である対象ソフトウェアに関する処理に影響を与える場合には、判定対象である対象ソフトウェアを正確に判定することができない。したがって、本実施形態に係るソフトウェア判定装置１０１によれば、たとえ、仮想計算機１０６における解析ソフトウェアの有無に応じて対象ソフトウェアの動作が異なる場合であっても、対象ソフトウェアの動作をより正確に検証することができる。
【００４３】
尚、上述した説明においては、説明の便宜上、ソフトウェア設定部１０３は、図４に例示されているようなソフトウェア情報に基づき、仮想計算機１０６を構成している記憶部１０７を設定するとした。しかし、記憶部１０７に、あらかじめ、図４に例示されているようなソフトウェア情報におけるソフトウェアが設定されている場合に、ソフトウェア設定部１０３は、ソフトウェア情報におけるソフトウェアを記憶部１０７に格納する必要はない。この場合に、本実施形態に係るソフトウェア判定装置１０１は、構成設定部１０２と、起動部１０４と、判定部１０５とを有する。起動部１０４は、構成設定部１０２が構成情報（図３に例示）に基づいて仮想計算機１０６を設定した場合に、ソフトウェアが設定された記憶部１０７を構成要素として有する仮想計算機１０６を起動する。判定部１０５は、仮想計算機１０６は、図２におけるステップＳ１０４乃至ステップＳ１０７に示した処理を実行することによって、対象ソフトウェアが実行されているか否かを判定する。
【００４４】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００４５】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４６】
図６と図７とを参照しながら、第２の実施形態に係るソフトウェア判定装置２０１が有する構成と、ソフトウェア判定装置２０１が行う処理とについて説明する。図６は、本発明の第２の実施形態に係るソフトウェア判定装置２０１が有する構成を示すブロック図である。図７は、第２の実施形態に係るソフトウェア判定装置２０１における処理の流れを示すフローチャートである。
【００４７】
第２の実施形態に係るソフトウェア判定装置２０１は、構成設定部１０２と、ソフトウェア設定部１０３と、起動部１０４と、判定部１０５と、情報送信部２０２と、表示部２０３とを有する。ソフトウェア判定装置２０１は、さらに、設定情報記憶部２０４を有してもよい。
【００４８】
以降の説明においては、説明の便宜上、情報送信部を、「情報提供部」と表すこともある。
【００４９】
ソフトウェア判定装置２０１は、仮想計算機１０６と通信接続することができる。
【００５０】
まず、情報送信部２０２は、図４に例示されているようなソフトウェア情報と、図５に例示されているような判定情報とを受信する。次に、情報送信部２０２は、複数種類の設定情報が含まれている設定情報セット（図８に例示）に基づき、設定情報を作成する（ステップＳ２０１）。図８は、設定情報セットが有する構成の一例を概念的に表す図である。尚、設定情報記憶部２０４は、設定情報セットを記憶している。
【００５１】
図８に例示された設定情報セットは、仮想計算機１０６に含まれる構成要素の名称と、該構成要素に設定する値の種類と、該値の初期値及び最大値と、該値として可能な値と、該値の刻み幅（図８の「ステップ」）と、図３に例示された設定情報に値を設定する場合の行数とが関連付けされた情報を含んでいる。尚、設定情報セットは、上述した項目以外の項目を含んでいてもよい。また、設定情報セットは、必ずしも、上述した項目をすべて含んでいる必要はない。
【００５２】
たとえば、図８に例示された設定情報セットの１行目は、仮想計算機１０６の構成要素の１つである項目「プロセッサの台数」に関して設定可能な一連の値を表す。この場合、情報送信部２０２は、設定情報記憶部２０４から該設定情報セットを読み取り、項目「プロセッサの数」に関して１台（初期値）から８台（最大値）まで１台（ステップ）ずつ、設定情報（図３に例示）における１行目（設定行数）に設定した設定情報を作成する。すなわち、この場合、情報送信部２０２は、８種類の設定情報を作成する。
【００５３】
図８に例示された設定情報セットの６行目は、仮想計算機１０６の構成要素の１つである項目「プロセッサの名称」に関して設定可能な一連の値を表す。この場合、情報送信部２０２は、設定情報記憶部２０４から該設定情報セットを読み取り、項目「プロセッサの名称」に関して読み取った「ＡＡＡ」と「ＢＢＢ」とを、それぞれ、設定情報（図３に例示）における２行目（設定行数）に設定することにより、２種類の設定情報を作成する。
【００５４】
情報送信部２０２は、上述した２つの項目に関して設定情報を作成する場合には、該２つの項目の組み合わせである１６（＝８×２）種類の設定情報を作成する。すなわち、情報送信部２０２は、設定情報セットに含まれている構成要素を組み合わせることにより、設定情報を作成する。
【００５５】
次に、情報送信部２０２は、受信した判定情報（図５に例示）と、受信したソフトウェア情報（図４に例示）と、作成した設定情報のうちの１つの設定情報とを、構成設定部１０２に送信する。すなわち、情報送信部２０２（情報提供部）は、受信した判定情報と、受信したソフトウェア情報と、作成した設定情報のうちの１つの設定情報とを、構成設定部１０２に提供する。
【００５６】
以降、構成設定部１０２、ソフトウェア設定部１０３、起動部１０４、及び、判定部１０５は、図２のステップＳ１０１乃至ステップＳ１０５に示した処理と同様の処理を実行する（ステップＳ２０２）。
【００５７】
次に、情報送信部２０２は、判定部１０５から判定結果を受信し、受信した判定結果と、構成設定部１０２に送信した設定情報とが関連付けされた結果情報を作成する（ステップＳ２０３）。
【００５８】
情報送信部２０２は、ステップＳ２０１からステップＳ２０３に至る処理を、作成した設定情報に関して、それぞれ実行する（ステップＳ２０１からステップＳ２０４に至る反復処理）。
【００５９】
次に、表示部２０３は、作成した結果情報から、判定条件を満たす判定結果に関連付けされた設定情報を特定し、特定した設定情報を表示する。たとえば、表示部２０３は、図９に例示されているように、特定した設定情報を総括的に含む設定情報を表示してもよい。図９は、表示部２０３に表示される設定情報の一例を概念的に表す図である。
【００６０】
図９に例示されている設定情報において、オペレーティングシステム（ＯＳ）の欄には、ＯＳ＿Ａと、ＯＳ＿Ｂとの２通りが含まれている。また、プロセッサ数の欄には、２と３と４との３通りが含まれている。これは、設定情報のうち、判定条件を満たす設定情報が、該ＯＳと、該プロセッサ数との組み合わせである６（＝２×３）通りあることを表す。
【００６１】
表示部２０３は、判定条件を満たしている設定情報を総括的に表示したが、判定部１０５が判定するのに応じて、判定条件を満たしている個々の設定情報を表示してもよい。
【００６２】
次に、第２の実施形態に係るソフトウェア判定装置２０１に関する効果について説明する。
【００６３】
本実施形態に係るソフトウェア判定装置２０１によれば、対象ソフトウェアの動作を容易に検証することができる。さらに、本実施形態に係るソフトウェア判定装置２０１によれば、設定情報セットに含まれている複数の設定情報の中から、対象ソフトウェアが動作する設定情報を、容易に特定することができる。
【００６４】
この理由は、理由１及び理由２である。すなわち、
（理由１）第２の実施形態に係るソフトウェア判定装置２０１は、第１の実施形態に係るソフトウェア判定装置１０１が有する構成と同様な構成を含んでいるからである、
（理由２）設定情報セット（図８に例示）に含まれている各設定情報に関して、判定条件が成り立つと、判定部１０５が判定する場合に、表示部２０３が該設定情報を出力するからである。判定条件が成り立つ場合に、対象ソフトウェアは、設定情報に基づき構成された仮想計算機１０６において動作する。この結果、表示部２０３は、対象ソフトウェアが動作する設定情報を出力する。
【００６５】
＜第３の実施形態＞
次に、上述した第２の実施形態を基本とする本発明の第３の実施形態について説明する。
【００６６】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６７】
図１０と図１１とを参照しながら、第３の実施形態に係るソフトウェア解析装置３０１が有する構成と、ソフトウェア解析装置３０１が行う処理とについて説明する。図１０は、本発明の第３の実施形態に係るソフトウェア解析装置３０１が有する構成を示すブロック図である。図１１は、第３の実施形態に係るソフトウェア解析装置３０１における処理の流れを示すフローチャートである。尚、ソフトウェア解析装置３０１は、マルウェアを解析することが可能な装置でもあるので、以降、マルウェア解析装置と表すこともある。
【００６８】
第３の実施形態に係るソフトウェア解析装置３０１は、判定情報設定部３０２と、ソフトウェア情報設定部３０３と、ソフトウェア判定装置２０１とを有する。さらに、ソフトウェア解析装置３０１は、判定情報記憶部３０４と、ソフトウェア情報記憶部３０５と、記憶部１０７とを有してもよい。
【００６９】
ソフトウェア情報記憶部３０５には、図１２に例示されているような、複数種類のソフトウェア情報を含むソフトウェア情報セットが格納されている。図１２は、ソフトウェア情報セットが有する構成の一例を概念的に表す図である。
【００７０】
図１２に示された例において、ソフトウェア情報は、たとえば、ソフトウェアの名称「Ｆ」と、ファイル「ＦＦＦＦ．ｅｘｅ」と、ファイルの処理手順「ＦＦＦＦ．ｅｘｅを「￥１２３４５」に保存する」とを関連付けする。これは、「ＦＦＦＦ．ｅｘｅ」を記憶領域「￥１２３４５」に保存することにより、ソフトウェア「Ｆ」を実行することが可能な仮想計算機１０６を設定できることを表す。ソフトウェアは、たとえば、マルウェアであってもよい。
【００７１】
判定情報記憶部３０４には、図１３に例示されているような、複数種類の判定情報を含む判定情報セットが格納されている。図１３は、判定情報セットが有する構成の一例を概念的に表す図である。
【００７２】
図１３に例示された判定情報セットにおいては、たとえば、ソフトウェアの名称「Ｆ」と、「メモリダンプする」と、「仮想計算機が通信を開始する」と、「メモリ中に文字列「ＣＲＹＰＴ  ＥＮＧＩＮＥ」が存在するか？」とが関連付けされている。これは、仮想計算機が通信を開始する場合に、メモリダンプを作成し、作成したメモリダンプ（すなわち、メモリ）中に文字列「ＣＲＹＰＴ  ＥＮＧＩＮＥ」が存在するか否かに応じて、ソフトウェアＦが実行されているか否かを判定することを表す。尚、「ＣＲＹＰＴ  ＥＮＧＩＮＥ」は、たとえば、暗号化する機能（プログラム、エンジン）を表す。
【００７３】
まず、ソフトウェア情報設定部３０３は、たとえば、図１４に例示されているようなユーザインターフェース（マンマシンインターフェース、グラフィカルユーザインターフェース）を介して、対象ソフトウェアの名称等を受信する。図１４は、第３の実施形態に係るユーザインターフェースの一例を表す図である。
【００７４】
たとえば、ユーザは、図１４に例示されているようなユーザインターフェースにおける、ソフトウェアの名称の欄に、対象ソフトウェアの名称を入力し、その後、「実行する」欄の左のチェックボックスにチェックを入れ、「参照」ボタンを押下する。これにより、ソフトウェアの名称と、該対象ソフトウェアを実行する命令とは、ソフトウェア情報設定部３０３に送信される。
【００７５】
次に、ソフトウェア情報設定部３０３は、ソフトウェア情報記憶部３０５を参照することにより、ソフトウェア情報セットの中から受信したソフトウェアの名称を含むソフトウェア情報を選ぶ（ステップＳ３０１）。次に、ソフトウェア情報設定部３０３は、選んだソフトウェア情報を、ソフトウェア判定装置２０１に送信する（与える）。
【００７６】
判定情報設定部３０２は、判定情報記憶部３０４を参照することにより、判定情報セットの中から、ソフトウェア情報設定部３０３が受信した名称を含む判定情報を選ぶ（ステップＳ３０２）。次に、判定情報設定部３０２は、選んだ判定情報を、ソフトウェア判定装置２０１に送信する。
【００７７】
次に、ソフトウェア判定装置２０１は、判定情報と、ソフトウェア情報とを受信するのに応じて、図７に示されたステップＳ２０１からステップＳ２０４に至る処理を実行する（ステップＳ３０３）。ソフトウェア判定装置２０１は、判定結果を表示してもよい（ステップＳ３０４）。
【００７８】
次に、第３の実施形態に係るソフトウェア解析装置３０１に関する効果について説明する。
【００７９】
本実施形態に係るソフトウェア解析装置３０１によれば、たとえば、設定情報に応じて異なる動作を実行するマルウェア等のソフトウェアに関して、ソフトウェアが動作する設定情報を特定することができる。この結果、本実施形態に係るソフトウェア解析装置３０１によれば、たとえば、マルウェア等のソフトウェアに対する対策を講じる情報を提供することができる。
【００８０】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第４の実施形態について説明する。尚、本実施形態に係るソフトウェア解析装置は、たとえば、図８に例示されているような設定情報セットと同様な設定情報セット（図１８、または、図１９）に基づいて、解析対象である対象ソフトウェアを解析することができる。
【００８１】
本発明の第４の実施形態に係るソフトウェア解析装置５０１が有する構成について、図１５を参照しながら説明する。図１５は、本発明の第４の実施形態に係るソフトウェア解析装置５０１が有する構成を示すブロック図である。
【００８２】
第４の実施形態に係るソフトウェア解析装置５０１は、構成設定部５０２と、起動部５０３と、判定部５０４と、制御部５０５とを有する。
【００８３】
ソフトウェア解析装置５０１は、仮想計算機５０６と通信接続することができる。仮想計算機５０６は、情報を不揮発的に記憶可能な記憶部５０７を有する。仮想計算機５０６において実行されている処理に関するデータは、メモリ５０８に記憶されている。処理に関するデータは、たとえば、ソフトウェアが処理する対象となっている処理データ（情報）、該ソフトウェアを表す実行プログラム等である。
【００８４】
構成設定部５０２は、たとえば、図１に示されている構成設定部１０２等が有する機能と同様な機能を用いて実現することができる。起動部５０３は、たとえば、図１に示されている起動部１０４等が有する機能と同様な機能を用いて実現することができる。判定部５０４は、たとえば、図１に示されている起動部１０４等が有する機能と同様な機能を用いて実現することができる。第４の実施形態に係るソフトウェア解析装置５０１における、より具体的な処理については、図１６、及び、図１７を参照しながら後述する。
【００８５】
制御部５０５は、図１８、図１９（または、図８）に例示されているような設定情報セットに従い、設定情報を作成する。図１８、及び、図１９は、設定情報セットの一例を概念的に表す図である。
【００８６】
設定情報セットにおいては、構成要素の名称と、該構成要素として設定可能な態様（値）とが関連付けされている。本実施形態において、設定情報セットにおける「構成要素の態様」の各値は、構成要素が取り得る態様が順次変化していく順序、または、構成要素がある数値列等に従って順次並べられた順序に従い、並べられているとする。
【００８７】
たとえば、図１８に例示された設定情報セットにおいては、構成要素の名称「クロック周波数」と、構成要素の態様「５，１０，１５，２０，・・・」とが関連付けされている。これは、仮想計算機５０６を定義する設定情報（図３に例示）のうち、クロック周波数に関して、５ギガヘルツ（ＧＨｚ）、１０（ＧＨｚ）、１５（ＧＨｚ）等と増加する値を、制御部５０５が、順次、態様として設定していくことを表す。
【００８８】
説明の便宜上、図１８に例示された設定情報セットがクロック周波数のみを含んでいるが、設定情報セットは、複数の構成要素に関する情報（図１９、図８に例示）を含んでいてもよい。この場合に、制御部５０５は、設定情報セットに従い、注目している構成要素とは異なる構成要素に関して値を固定しつつ、該注目している構成要素に関しては、値を順次設定することによって設定情報を作成する。たとえば、制御部５０５は、注目している構成要素がクロック周波数である場合に、クロック周波数のみを設定情報セットに従い順次設定し、プロセッサの数、ＯＳ、メモリの大きさ（記憶容量）等の構成要素に関する値を変えることなく、設定情報を作成する。
【００８９】
図１８において列「構成要素の態様」に設定されている値（態様）について説明する。構成要素の名称が「プロセッサの名称」である場合（図１８）に、列「構成要素の態様」には、クロック周波数が、該クロック周波数の大きさに従って並べられている。構成要素の名称が「プロセッサの名称」である場合に、列「構成要素の態様」には、たとえば、プロセッサの名称が、該プロセッサに関する命令セットの包含関係に従って、並べられている。また、構成要素の名称が「ＯＳ」である場合に、列「構成要素の態様」には、たとえば、ＯＳの名称が、該ＯＳに付されたバージョン等の数値列に従って、並べられている。設定情報セットは、上述した例に限定されない。
【００９０】
図１９に例示された設定情報セットは、構成要素の名称「クロック周波数」と、構成要素の名称「メモリの大きさ」と、構成要素の名称「プロセッサの名称」とを含む。この場合に、ソフトウェア解析装置は、設定情報セットにおける各構成情報の名称に関して、たとえば、図２１等を参照しながら後述するような処理を実行する。
【００９１】
以降の説明においては、説明の便宜上、記憶部５０７に、あらかじめ、図４に例示されているようなソフトウェア情報に基づき、ソフトウェアが設定されているとする。すなわち、記憶部５０７には、あらかじめ、ソフトウェアに関するファイルが、該ファイルに関連付けされた「ファイルの設定順序」に従い設定されているとする。また、図１８に例示された設定情報セットには「クロック周波数」のみが記載されているが、制御部５０５は、クロック周波数と異なる構成要素（たとえば、メモリの大きさ）に関しても、値（態様）を設定しているとする。
【００９２】
次に、図１６、及び、図１７を参照しながら、第４の実施形態に係るソフトウェア解析装置５０１における処理について説明する。図１６は、第４の実施形態に係るソフトウェア解析装置５０１のうち、構成設定部５０２、起動部５０３、及び、判定部５０４における処理の流れを示すフローチャートである。図１７は、第４の実施形態に係るソフトウェア解析装置５０１のうち、制御部５０５における処理の流れを示すフローチャートである。
【００９３】
まず、制御部５０５は、図１８に例示されているような設定情報セットから、構成要素の名称と、該構成要素に関する態様のうち先頭の値（態様）を読み取る。制御部５０５は、該構成要素の態様として読み取った値が設定された設定情報を作成する（ステップＳ６０１）。
【００９４】
構成設定部５０２は、図３に例示されているような設定情報を受信した場合に、受信した情報に基づき、仮想計算機５０６に含まれる構成要素を設定する（ステップＳ５０１）。上述したように、該設定情報は、仮想計算機５０６が有する構成要素に関して１つの態様を表す情報である。言い換えると、構成設定部５０２は、設定情報に従った態様である仮想計算機５０６であって、対象ソフトウェアが格納されている記憶部５０７を構成要素として含む仮想計算機５０６を設定する。
【００９５】
起動部５０３は、構成設定部５０２が設定した仮想計算機５０６を起動する（ステップＳ５０２）。
【００９６】
判定部５０４は、図５に例示された判定情報に基づき、該判定情報に含まれているタイミングに、該タイミングに関連付けされた実行処理を実行する（ステップＳ５０３）。
【００９７】
次に、判定部５０４は、実行処理を実行した結果を参照しながら、該実行処理に関連付けされた判定条件に基づき、対象ソフトウェアが仮想計算機５０６において実行されているか否かを判定する（ステップＳ５０４）。判定部５０４は、該実行処理の実行結果が該判定条件を満たしていると判定した場合に（ステップＳ５０４にてＹＥＳ）、対象ソフトウェアが実行されていると判定する（ステップＳ５０５）。判定部１０５は、該実行処理の実行結果が該判定条件を満たしていないと判定した場合に（ステップＳ５０４にてＮＯ）、対象ソフトウェアが実行されていないと判定する（ステップＳ５０６）。
【００９８】
制御部５０５は、判定部５０４が該対象ソフトウェアに関して判定した結果を記憶部（不図示）に格納する（ステップＳ６０２）。次に、制御部５０５は、図１８に例示されているような設定情報セットから、構成要素の名称と、該構成要素に関する態様のうち２番目の値（態様）を読み取る。制御部５０５は、該構成要素の態様として読み取った値が格納された設定情報を作成する（ステップＳ６０３）。
【００９９】
制御部５０５が作成した設定情報に基づき、構成設定部５０２、起動部５０３、及び、判定部５０４は、図１６に示した処理と同様の処理を実行する。
【０１００】
制御部５０５は、判定部５０４が該対象ソフトウェアに関して判定した結果を記憶部（不図示）に格納する（ステップＳ６０４）。制御部５０５は、ステップＳ６０２において格納した判定結果と、ステップＳ６０４において格納した判定結果とが一致しているか否かを判定する（ステップＳ６０５）。言い換えると、制御部５０５は、設定情報セットの列「構成要素の態様」における先頭の値に関して算出された判定結果と、２番目の値に関して算出された判定結果とが一致しているか否かを判定する。
【０１０１】
制御部５０５は、該２つの判定結果が一致している場合に（ステップＳ６０５にてＹＥＳ）、図１８に例示されているような設定情報セットから、構成要素の名称と、該構成要素に関する態様のうち３番目の値（態様）を読み取る。制御部５０５は、該構成要素の態様として読み取った値が設定された設定情報を作成する（ステップＳ６０３）。制御部５０５が作成した設定情報に基づき、構成設定部５０２、起動部５０３、及び、判定部５０４は、図１６に示した処理と同様の処理を実行する。次に、制御部５０５は、設定情報セットの列「構成要素の態様」における２番目の値に関して算出された判定結果と、３番目の値に関して算出された判定結果とが一致しているか否かを判定する（ステップＳ６０５）。
【０１０２】
以降、同様な処理を実行することによって、制御部５０５は、Ｉ（ただし、Ｉは、図１８に示された（態様の個数−１）以下の自然数を表す）番目の値に関して算出された判定結果と、（Ｉ＋１）番目の値に関して算出された判定結果とが一致しているか否かを判定する（ステップＳ６０５）。
【０１０３】
これに対して、制御部５０５は、該２つの判定結果が一致していない場合に（ステップＳ６０５にてＮＯ）は、処理を終了する。
【０１０４】
すなわち、ステップＳ６０３乃至ステップＳ６０５に示す処理によって、制御部５０５は、設定情報セットにおいて連続している２つの態様に関して、判定結果が異なる態様を算出する。制御部５０５は、ステップＳ６０５にてＮＯの場合に、ステップＳ６０５にて比較した判定結果の基となった態様のいずれかを出力してもよい。
【０１０５】
図１７において、判定結果が一致するか否かに関する判定処理は、設定情報セットにおいて連続している２つの態様に対して制御部５０５が実行する判定処理（以下の判定１、または、判定２）であってもよい。
【０１０６】
（判定１）対象ソフトウェアは、先に作成した設定情報に従った構成要素を有する仮想計算機５０６に動作しておらず、後に作成した設定情報に従った構成要素を有する仮想計算機５０６に動作している。
【０１０７】
（判定２）対象ソフトウェアは、先に作成した設定情報に従った構成要素を有する仮想計算機５０６に動作しており、後に作成した設定情報に従った構成要素を有する仮想計算機５０６に動作していない。
【０１０８】
次に、第４の実施形態に係るソフトウェア解析装置５０１に関する効果について説明する。
【０１０９】
第４の実施形態に係るソフトウェア解析装置５０１によれば、対象ソフトウェアがある計算機環境において動作するか否かを容易に検証することができる。この理由は、第４の実施形態に係るソフトウェア解析装置５０１が、第１の実施形態に係るソフトウェア判定装置１０１が有する構成と同様な構成を含んでいるからである。
【０１１０】
さらに、第４の実施形態に係るソフトウェア解析装置５０１によれば、対象ソフトウェアが動作可能な計算機環境を効率よく解析（特定）することができる。言い換えれば、第４の実施形態に係るソフトウェア解析装置５０１によれば、設定情報セットに含まれている複数の態様の中から、対象ソフトウェアが動作する態様（計算機環境）と、該対象ソフトウェアが動作しない態様（計算機環境）との境界を、効率よく推定することができる。この理由について詳細に説明する。
【０１１１】
メモリの大きさ（記憶容量）がある大きさ以上である場合に対象ソフトウェアが動作し、メモリの大きさが該ある大きさ未満である場合には該対象ソフトウェアが動作しないと仮定する。さらに、設定情報セットにおいては、メモリの大きさに関する構成要素の態様を、あらかじめ、該メモリの大きさを表す数値列に従い、該大きさが小さい順に並べられた数値列が設定されているとする。
【０１１２】
この場合に、ソフトウェア解析装置５０１は、図１６及び図１７に示されているような処理に従い、メモリの大きさが小さなメモリを有する仮想計算機５０６から、順に、該対象ソフトウェアが実行されているか否かを判定する。この処理によって、ソフトウェア解析装置５０１は、相互に隣接している２つの態様に関して、判定結果が異なる態様を出力する。対象ソフトウェアは、メモリの大きさに関する「ある大きさ」を閾値として動作するか否かが変化するので、ソフトウェア解析装置５０１は、図１８に例示された設定情報セットにおける「構成要素の態様」に設定された各値に基づいて、該境界を推定することができる。
【０１１３】
設定情報セットにおける「構成要素の態様」においては、あらかじめ、仮想計算機５０６において対象ソフトウェアが実行されないと予測される態様を先に処理するように先に配置され、対象ソフトウェアが実行されると予測される態様を後に処理するように後に配置されていてもよい。このように設定情報セットを作成することによって、制御部５０５は、たとえば、判定部５０４における判定結果において、該対象ソフトウェアが実行される態様を見つけることによって、図１７に示した処理と同様な処理を実行することができる。この場合に、制御部５０５は、ステップＳ６０２、または、ステップＳ６０４に示されているような判定結果を格納する処理を実行する必要がない。
【０１１４】
さらに、設定情報セットにおいて、対象ソフトウェアが実行されないと予測される態様を先に処理するように先に配置し、対象ソフトウェアが実行されると予測される態様を後に処理するように後に配置する場合に奏する効果について説明する。マルウェア等の悪意を有した対象ソフトウェアは、多様な計算機環境において動作するように作られている場合が多い。対象ソフトウェアが多様な計算機環境において動作するように作られている場合に、該対象ソフトウェアが動作する計算機環境は、対象ソフトウェアが動作しない計算機環境よりも多様である。この場合、設定情報セットにおいて、上述したように各態様を配置することによって、ステップＳ６０３乃至ステップＳ６０５（図１７）に関する処理の反復回数を減らすことができるという効果を奏する。すなわち、本実施形態に係るソフトウェア解析装置５０１によれば、対象ソフトウェアが動作する計算機環境を容易に、かつ、短期間に解析することができるという効果を奏する。この効果を奏する配置としては、たとえば、以下の配置１乃至配置６に示すような配置である。
【０１１５】
（配置１）プロセッサの数を昇順に配置する、
（配置２）メモリの大きさを昇順に配置する、
（配置３）ディスプレイの解像度（縦）を昇順に配置する、
（配置４）ディスプレイの解像度（横）を昇順に配置する、
（配置５）プロセッサの名称を、該プロセッサに関する命令セットの個数が昇順になるよう配置する、
（配置６）ＯＳを、該ＯＳに付されたバージョンが時系列順になるように配置する。
【０１１６】
（配置７）クロックの周波数を昇順に配置する。
【０１１７】
尚、ソフトウェア解析装置５０１は、設定情報セットの「構成要素の態様」欄に格納されている態様のうち、先頭の態様と、末尾の態様とに関して、それぞれ、対象ソフトウェアが実行されているか否かを判定してもよい。この場合に、ソフトウェア解析装置５０１は、該最後の態様に関して対象ソフトウェアが実行されておらず、該最初の態様に関して対象ソフトウェアが実行されている場合に、「構成要素の態様」欄における配列の前後を逆転させる処理を実行し、その後、図１６及び図１７に示す処理を実行する。ソフトウェア解析装置５０１によれば、仮想計算機５０６において対象ソフトウェアが動作するか否かが予測できない場合であっても、対象ソフトウェアが動作する計算機環境を容易に、かつ、短期間に検証することができるという効果を奏する。
【０１１８】
＜第５の実施形態＞
次に、上述した第４の実施形態を基本とする本発明の第５の実施形態について説明する。
【０１１９】
本発明の第５の実施形態に係るソフトウェア解析装置６０１が有する構成について、図２０を参照しながら説明する。図２０は、本発明の第５の実施形態に係るソフトウェア解析装置６０１が有する構成を示すブロック図である。
【０１２０】
第５の実施形態に係るソフトウェア解析装置６０１は、構成設定部５０２と、起動部５０３と、判定部５０４と、制御部５０５と、ソフトウェア設定部６０６とを有する。
【０１２１】
ソフトウェア解析装置６０１は、仮想計算機５０６と通信接続することができる。仮想計算機５０６は、情報を不揮発的に記憶可能な記憶部５０７を有する。仮想計算機５０６において実行されている処理に関するデータは、メモリ５０８に記憶されている。処理に関するデータは、たとえば、ソフトウェア（対象ソフトウェア）が処理する対象となっている処理データ（情報）、該ソフトウェアを表す実行プログラム等である。
【０１２２】
ソフトウェア設定部６０６は、たとえば、図１に示されている構成設定部１０２によって実現することができる。
【０１２３】
次に、図２１を参照しながら、第５の実施形態に係るソフトウェア解析装置６０１における処理について説明する。図２１は、第５の実施形態に係るソフトウェア解析装置６０１における処理の流れを示すフローチャートである。
【０１２４】
制御部５０５は、図１７におけるステップＳ５０１に示した処理を実行することにより、設定情報を作成する。構成設定部５０２は、図３に例示されているような設定情報を受信した場合に、受信した設定情報に基づき、仮想計算機５０６に含まれる構成要素を設定する（ステップＳ５０１）。
【０１２５】
次に、ソフトウェア設定部６０６は、図４に例示されたソフトウェア情報に含まれている手順に従い、仮想計算機５０６が有する構成要素の１つである記憶部５０７に、該手順と関連付けされたファイルを設定する（ステップＳ７０１）。この結果、仮想計算機５０６は、記憶部５０７からソフトウェア設定部６０６にて設定されたファイルを読み取り、読み取ったファイルを実行することによって、該対象ソフトウェアを起動することができる。
【０１２６】
次に、起動部５０３は、仮想計算機５０６を起動する（ステップＳ５０２）。以降、ソフトウェア解析装置６０１においては、ステップＳ５０３乃至ステップＳ５０６に示す処理、及び、ステップＳ６０３乃至ステップＳ６０５（図１７）に示す処理が実行される。
【０１２７】
尚、ソフトウェア情報に含まれているソフトウェアの名称が複数である場合に、ソフトウェア解析装置６０１は、該ソフトウェア情報における各ソフトウェア（すなわち、各対象ソフトウェア）に関して、図１７、及び、図２１に示された処理を実行する。
【０１２８】
次に、第５の実施形態に係るソフトウェア解析装置６０１に関する効果について説明する。
【０１２９】
第５の実施形態に係るソフトウェア解析装置６０１によれば、対象ソフトウェアが動作可能な計算機環境を効率よく解析（特定）することができる。この理由は、第５の実施形態に係るソフトウェア解析装置６０１が、第４の実施形態に係るソフトウェア解析装置５０１が有する構成と同様な構成を含んでいるからである。
【０１３０】
さらに、第５の実施形態に係るソフトウェア解析装置６０１によれば、対象ソフトウェアが複数存在していたとしても、各対象ソフトウェアに関して、上述した効果と同様な効果を奏する。すなわち、ソフトウェア解析装置６０１によれば、該各対象ソフトウェアに関して、設定情報セットに含まれている複数の態様の中から、対象ソフトウェアが動作する態様と、該対象ソフトウェアが動作しない態様との境界を推定することができる。この理由は、ソフトウェア設定部６０６が、ソフトウェア情報（図４に例示）を参照する処理によって、該対象ソフトウェアに関連付けされたファイル設定手順に従い、該対象ソフトウェアに関するファイルを、記憶部５０７に設定するからである。
【０１３１】
（ハードウェア構成例）
上述した本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、専用の装置として実現してもよい。
【０１３２】
図２２は、本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４、通信インターフェース（以降、「通信ＩＦ」と表す。）２７、及び、ディスプレイ２８を有する。計算処理装置２０は、さらに、入力装置２５、及び、出力装置２６に接続されている。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１３３】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１３４】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレイ２８に出力結果を表示する。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、図１０、図１５、または、図２０に示す各部が表す機能（処理）に対応するところのメモリ２２にあるソフトウェア判定プログラム（図２、または、図７）、ソフトウェア解析プログラム（図１１、図１６、図１７、または、図２１）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１３５】
すなわち、このような場合、本発明は、係るソフトウェア判定プログラム、ソフトウェア解析プログラム、または、マルウェア診断プログラムによっても成し得ると捉えることができる。更に、係るソフトウェア判定プログラム、ソフトウェア解析プログラム、または、マルウェア診断プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１３６】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１３７】
この出願は、２０１５年１１月３０日に出願された日本出願特願２０１５−２３３６０４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１３８】
１０１    ソフトウェア判定装置
１０２    構成設定部
１０３    ソフトウェア設定部
１０４    起動部
１０５    判定部
１０６    仮想計算機
１０７    記憶部
１０８    メモリ
２０１    ソフトウェア判定装置
２０２    情報送信部
２０３    表示部
２０４    設定情報記憶部
３０１    ソフトウェア解析装置
３０２    判定情報設定部
３０３    ソフトウェア情報設定部
３０４    判定情報記憶部
３０５    ソフトウェア情報記憶部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレイ
５０１    ソフトウェア解析装置
５０２    構成設定部
５０３    起動部
５０４    判定部
５０５    制御部
５０６    仮想計算機
５０７    記憶部
５０８    メモリ
６０１    ソフトウェア解析装置
６０６    ソフトウェア設定部
【図１】
2017094519.tif 000003
【図２】
2017094519.tif 000004
【図３】
2017094519.tif 000005
【図４】
2017094519.tif 000006
【図５】
2017094519.tif 000007
【図６】
2017094519.tif 000008
【図７】
2017094519.tif 000009
【図８】
2017094519.tif 000010
【図９】
2017094519.tif 000011
【図１０】
2017094519.tif 000012
【図１１】
2017094519.tif 000013
【図１２】
2017094519.tif 000014
【図１３】
2017094519.tif 000015
【図１４】
2017094519.tif 000016
【図１５】
2017094519.tif 000017
【図１６】
2017094519.tif 000018
【図１７】
2017094519.tif 000019
【図１８】
2017094519.tif 000020
【図１９】
2017094519.tif 000021
【図２０】
2017094519.tif 000022
【図２１】
2017094519.tif 000023
【図２２】
2017094519.tif 000024
【手続補正書】
【提出日】平成30年5月24日(2018.5.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定手段と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定手段によって前記設定情報に設定し、設定された設定情報に対して、前記判定手段が判定する判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御手段と
を備えるソフトウェア解析装置。
【請求項２】
対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと、前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報に含まれている前記手順に従い、前記記憶部に前記ファイルを設定するソフトウェア設定手段
をさらに備え、
前記構成設定手段は、前記ソフトウェア設定手段が設定した前記記憶部を含む前記構成要素を有する前記仮想計算機を設定する
請求項１に記載のソフトウェア解析装置。
【請求項３】
前記制御手段は、前記ある態様に関して、前記判定結果が、前記対象ソフトウェアが実行されていないことを表し、前記ある態様の次の態様に関して、前記判定結果が、前記対象ソフトウェアが実行されていることを表す場合に、前記ある態様の次の態様を出力する
請求項１または請求項２に記載のソフトウェア解析装置。
【請求項４】
前記対象ソフトウェアに関して、前記実行処理が異なる複数の前記判定情報が与えられた場合に、前記判定手段は、複数の前記判定情報に含まれている各判定情報に関して判定する
請求項１乃至請求項３のいずれかに記載のソフトウェア判定装置。
【請求項５】
前記設定情報セットを格納している設定情報記憶手段
をさらに備える請求項１乃至請求項４のいずれかに記載のソフトウェア解析装置。
【請求項６】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するメモリの容量を表す値が昇順に並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項７】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するプロセッサが処理可能な命令数が少ない順に、前記プロセッサの名称が並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項８】
前記設定情報セットは、前記態様として、前記仮想計算機を構成するプロセッサの台数が昇順に並べられた情報を含んでいる
請求項５に記載のソフトウェア解析装置。
【請求項９】
情報処理装置によって、仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定し、
設定された前記仮想計算機を起動し、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定し、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記設定情報に設定し、設定した設定情報に対して判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力するソフトウェア解析方法。
【請求項１０】
仮想計算機が有する構成要素に対して１つの態様を設定することを表す設定情報に従い、少なくとも、対象ソフトウェアを実行するのに要するファイルが所定の記憶領域に格納された記憶部を含む、前記構成要素を有する前記仮想計算機を設定する構成設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが前記仮想計算機において実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが前記仮想計算機において実行されていないと判定する判定機能と、
前記構成要素が取り得る態様が順次変化する順序に従い並べられた設定情報セットに関して、ある態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に関して、前記判定機能を用いて判定された判定結果と、前記設定情報セットに関して、ある態様の次の態様を前記構成設定機能によって前記設定情報に設定し、設定された設定情報に対して、前記判定機能を用いて判定された判定結果とが異なる場合に、前記ある態様または前記次の態様を出力する制御機能と
をコンピュータに実現させるソフトウェア解析プログラム。
【国際調査報告】
2017094519.tif 000025
2017094519.tif 000026