(57)【特許請求の範囲】
【請求項１】
コンピュータ・デバイスにインストールされた１つ又は複数の不要なアプリケーションを検出する、コンピュータで実行可能な方法であって、
取得工程と、検出工程と、ファイル特定工程と、アプリケーション特定工程と、判定工程と、決定工程とを備え、
前記取得工程では、前記コンピュータ・デバイスのプロセッサを介して、前記コンピュータ・デバイスにインストールされた第１アプリケーションと関連付けられている情報を取得し、
前記検出工程では、第１アプリケーションと関連付けられている第１ファイルを検出し、
前記ファイル特定工程では、選択された条件に少なくとも基づいて、第１ファイルと関連し且つ前記コンピュータ・デバイスにインストールされた第２ファイルを特定し、
前記アプリケーション特定工程では、第１及び第２ファイルのうちの少なくとも１つを使って前記コンピュータ・デバイスにインストールされた第２アプリケーションを特定し、
前記判定工程では、第１及び第２アプリケーションそれぞれの使用頻度を判定し、
前記決定工程では、前記使用頻度に基づいて、第１アプリケーションが不要なアプリケーションであるか否かを決定する、
コンピュータで実行可能な方法。
【請求項２】
前記選択された条件は、次に掲げる（１）〜（４）の少なくとも１つである、請求項１に記載のコンピュータで実行可能な方法。
（１）２つのファイルである第１及び第２ファイルは、同じアプリケーションにより作成されたものである。
（２）第１及び第２ファイルは、同じネットワークアドレスから前記コンピュータ・デバイスにロードされたものである。
（３）第１及び第２ファイルの修正に係る時間間隔は、選択された閾値よりも小さい。
（４）第１及び第２ファイルは、同一又は類似の属性若しくはデータを有する。
【請求項３】
前記選択された閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである、請求項２に記載のコンピュータで実行可能な方法。
【請求項４】
前記検出工程は、
第１アプリケーションと関連付けられているファイルの場所であるパスを示すウィンドウズ・レジストリのエントリを分析し、
第１アプリケーションの起動を担う少なくとも１つのファイルと同じパスである第１ファイルを特定する、
請求項１に記載のコンピュータで実行可能な方法。
【請求項５】
少なくとも、
第１及び第２ファイルにより共有された特徴セットを特定し、前記特徴セットそれぞれのＮ次元ベクトルを決定し、これら少なくとも２つのＮ次元ベクトルの内積に基づいて、第１及び第２ファイルの類似度を決定することで、
第１及び第２ファイルの同一又は類似の属性若しくはデータを決定することを更に備える、
請求項２に記載のコンピュータで実行可能な方法。
【請求項６】
前記アプリケーション特定工程は、次に掲げる（１）〜（３）の少なくとも１つに基づく、請求項１に記載のコンピュータで実行可能な方法。
（１）前記コンピュータ・デバイスにインストールされたアプリケーションを特定するためレジストリ・ブランチに保存された情報。
（２）第１及び第２ファイルであってそれぞれに対応するアプリケーションに関連付けられている第１及び第２ファイルのパス
（３）前記コンピュータ・デバイスにインストールされたアプリケーションそれぞれを起動するためのルール。
【請求項７】
前記判定工程は、次に掲げる（１）〜（４）の少なくとも１つの頻度を判定することを備える、請求項１に記載のコンピュータで実行可能な方法。
（１）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションを実行する。
（２）前記コンピュータ・デバイスのオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）を、それぞれのアプリケーションが呼び出す。
（３）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションに関連付けられているファイルを修正する。
（４）それぞれアプリケーションのインタ−フェースを用いて、それぞれのアプリケーションとのデータ通信を行うための動作を起こす。
【請求項８】
コンピュータ・デバイスにインストールされた１つ又は複数の不要なアプリケーションを検出するためのシステムであって、
少なくとも１つのプロセッサを備え、
前記プロセッサは、
前記コンピュータ・デバイスにインストールされた第１アプリケーションと関連付けられている情報を取得し、
第１アプリケーションと関連付けられている第１ファイルを検出し、
選択された条件に少なくとも基づいて、第１ファイルと関連付けられている第２ファイルを特定し、
第１及び第２ファイルの少なくとも１つを使って前記コンピュータ・デバイスにインストールされた第２アプリケーションを特定し、
第１及び第２アプリケーションそれぞれの使用頻度を判定し、
前記使用頻度に基づいて、第１アプリケーションが不要なアプリケーションであるか否かを決定する、ように構成される、
システム。
【請求項９】
前記選択された条件は、次に掲げる（１）〜（４）の少なくとも１つである、請求項８に記載のシステム。
（１）２つのファイルである第１及び第２ファイルは、同じアプリケーションにより作成されたものである。
（２）第１及び第２ファイルは、同じネットワークアドレスから前記コンピュータ・デバイスにロードされたものである。
（３）第１及び第２ファイルの修正に係る時間間隔は、選択された閾値よりも小さい。
（４）第１及び第２ファイルは、同一又は類似の属性若しくはデータを有する。
【請求項１０】
前記選択された閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである、請求項９に記載のシステム。
【請求項１１】
第１ファイルの検出において、前記プロセッサは、
第１アプリケーションと関連付けられているファイルの場所であるパスを示すウィンドウズ・レジストリのエントリを分析し、
第１アプリケーションの起動を担う少なくとも１つのファイルと同じパスである第１ファイルを特定する、ように構成される、
請求項８に記載のシステム。
【請求項１２】
前記プロセッサは、少なくとも、
第１及び第２ファイルにより共有された特徴セットを特定し、前記特徴セットそれぞれのＮ次元ベクトルを決定し、これら少なくとも２つのＮ次元ベクトルの内積に基づいて、第１及び第２ファイルの類似度を決定することで、
第１及び第２ファイルの同一又は類似の属性若しくはデータを決定するように構成される、請求項８に記載のシステム。
【請求項１３】
第２アプリケーションの特定において、前記プロセッサは、次に掲げる（１）〜（３）の少なくとも１つに基づくように構成される、請求項８に記載のシステム。
（１）前記コンピュータ・デバイスにインストールされたアプリケーションを特定するためレジストリ・ブランチに保存された情報。
（２）第１及び第２ファイルであってそれぞれに対応するアプリケーションに関連付けられている第１及び第２ファイルのパス
（３）前記コンピュータ・デバイスにインストールされたアプリケーションそれぞれを起動するためのルール。
【請求項１４】
前記使用頻度の判定において、前記プロセッサは、次に掲げる（１）〜（４）の少なくとも１つを備えるように構成される、請求項８に記載のシステム。
（１）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションを実行する。
（２）前記コンピュータ・デバイスのオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）を、それぞれのアプリケーションが呼び出す。
（３）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションに関連付けられているファイルを修正する。
（４）それぞれアプリケーションのインタ−フェースを用いて、それぞれのアプリケーションとのデータ通信を行うための動作を起こす。
【請求項１５】
コンピュータに実行可能なコードを保存する不揮発性コンピュータ可読媒体であって、
前記コードは、少なくとも１つのコンピュータに
前記少なくとも１つのコンピュータのプロセッサを介して、前記少なくとも１つのコンピュータにインストールされた第１アプリケーションと関連付けられている情報を取得し、
第１アプリケーションと関連付けられている第１ファイルを検出し、
選択された条件に少なくとも基づいて、第１ファイルと関連し且つ前記少なくとも１つのコンピュータにインストールされた第２ファイルを特定し、
第１及び第２ファイルのうちの少なくとも１つを使って前記少なくとも１つのコンピュータにインストールされた第２アプリケーションを特定させ、
第１及び第２アプリケーションそれぞれの使用頻度を判定し、
前記使用頻度に基づいて、第１アプリケーションが不要なアプリケーションであるか否かを決定する、ことを実行させる
コンピュータ可読媒体。
【請求項１６】
前記選択された条件は、次に掲げる（１）〜（４）の少なくとも１つである、請求項１５に記載のコンピュータ可読媒体。
（１）２つのファイルである第１及び第２ファイルは、同じアプリケーションにより作成されたものである。
（２）第１及び第２ファイルは、同じネットワークアドレスから前記少なくとも１つのコンピュータにロードされたものである。
（３）第１及び第２ファイルの修正に係る時間間隔は、選択された閾値よりも小さい。
（４）第１及び第２ファイルは、同一又は類似の属性若しくはデータを有する。
【請求項１７】
第１ファイルの検出は、
第１アプリケーションと関連付けられているファイルの場所であるパスを示すウィンドウズ・レジストリのエントリを分析し、
第１アプリケーションの起動を担う少なくとも１つのファイルと同じパスである第１ファイルを特定する、
請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
少なくとも、
第１及び第２ファイルにより共有された特徴セットを特定し、前記特徴セットそれぞれのＮ次元ベクトルを決定し、これら少なくとも２つのＮ次元ベクトルの内積に基づいて、第１及び第２ファイルの類似度を決定することで、
第１及び第２ファイルの同一又は類似の属性若しくはデータを決定することを、
前記少なくとも１つのコンピュータに実行させるコードを更に備える、請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
第２アプリケーションの特定は、次に掲げる（１）〜（３）の少なくとも１つに基づく、請求項１５に記載のコンピュータ可読媒体。
（１）前記少なくとも１つのコンピュータにインストールされたアプリケーションを特定するためレジストリ・ブランチに保存された情報。
（２）第１及び第２ファイルであってそれぞれに対応するアプリケーションに関連付けられている第１及び第２ファイルのパス
（３）前記少なくとも１つのコンピュータにインストールされたアプリケーションそれぞれを起動するためのルール。
【請求項２０】
前記使用頻度の判定は、次に掲げる（１）〜（３）の少なくとも１つを前記少なくとも１つのコンピュータに実行させるコードを更に備える、請求項１５に記載のコンピュータ可読媒体。
（１）前記少なくとも１つのコンピュータへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションを実行する。
（２）前記少なくとも１つのコンピュータのオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）を、それぞれのアプリケーションが呼び出す。
（３）前記少なくとも１つのコンピュータへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションに関連付けられているファイルを修正する。
（４）それぞれアプリケーションのインタ−フェースを用いて、それぞれのアプリケーションとのデータ通信を行うための動作を起こす。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、米国特許法第１１９条（ａ）〜（ｄ）（３５ＵＳＣ  １１９（ａ）−（ｄ））下の優先権の利益を主張する。２０１６年５月２０日に出願されたロシア特許出願２０１６１１９５２０号は、本明細書中に参照として援用されるものとする。
【０００２】
本願は、概してアンチウィルス・テクノロジーに関し、特にコンピュータ・デバイス上の不要なソフトウェアを検出するシステム及び方法に関する。
【背景技術】
【０００３】
近年のコンピュータの処理パワーは増加しているので、コンピュータにおいて使用されるソフトウェア（コンピュータプログラム又は単にプログラムと呼ぶ）の複雑さもかなり増している。最もしばしば、現代のソフトウェアがメインプログラムの実行可能なファイルだけではなく、補助ユーティリティ、データライブラリ、リソース（例えば、アイコンやマルチメディアデータ）等の多くのファイルを含んでいる。
【０００４】
ユーザのコンピュータ上に近年のソフトウェアが適切にインストールされるように、特別なインストールプログラムが用いられ、これは、インストールされるソフトウェアの微調整と、他のプログラム及び基礎となるオペレーティングシステムとの協調動作（インターワーキング）に係る相性調整と、追加のユーティリティのインストールとを提供するものである。
【０００５】
ユーザのコンピュータにユーザが所望するプログラムをインストールする際に、しばしばユーザが必要ではない追加のプログラムがインストールされてしまうことがしばしばある。例えば、アンチウィルスソフト等、既にユーザのコンピュータに何らかのものがインストールされている場合や、又は例えば、ユーザが全く使っていないＥメールサービスのステータスを追跡するブラウザの補足機能等が挙げられる。
【０００６】
便利だが不要なプログラムを除き、いくつかのインストーラプログラムは、危険の可能性があるソフトウェア（リスクウェア）や現実に危険を伴うソフトウェア（マルウェア）と同様に、いわゆる「不要なソフトウェア」をインストールしてしまう。
【０００７】
一般的にコンピュータ・ネットワーク（特に、インターネット）が発達したため、何らかのプログラムが、インストール直前にコンピュータネットワークからダウンロードされるか、又は、個々のインストーラは、サーバエンドでユーザそれぞれに与えられることに留意されたい。そのようなインストーラは、ユーザは、コンピュータアプリケーションが配布されるサイト上で選択するプログラムを含みうるもので、それは、再度、上述の問題点を引き起こすものである。つまり、ユーザにとって必要ではない多くのプログラムが、ユーザのコンピュータにインストールされてしまい、潜在的に危険なものや有害なものも考えられうる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
不要なソフトウェアのインストールを検出するに際して問題となるのは、多くのインストーラプログラムで、ユーザの同意を得た上で上述のプログラムをインストールするという事実にある。ユーザは普通、自身がインストールしているものやその目的を意識していないのである。例えば、あるインストーラプログラムでは、追加のプログラムをインストールする旨をユーザーに提示していることがある。このように提示されると、ユーザは、実際インストールする必要がなくてもインストールするという選択をする傾向があるからである。
【０００９】
不要なソフトウェアの検出において、悪意のあるプログラムに対処する標準的な方法、すなわち、例えば、署名や経験則の使用による検出によって不要なソフトウェアを除去するというものが用いられる。
【００１０】
潜在的に脅威となるソフトウェアや悪意のあるソフトウェアを検出するための既知の技術が使用されるものの、これは、しばしばユーザのコンピュータにインストールされた不要なソフトウェアを検出することができない。
【００１１】
本発明は、不要なソフトウェアの検出に係る問題を解決するものである。
【課題を解決するための手段】
【００１２】
本発明は、他の特徴にあっては、ユーザーのコンピュータ又はコンピュータ・デバイス上のアプリケーションのアンチウィルス・スキャンと、不要なソフトウェアの検出をすることを意図している。
【００１３】
本発明に係るシステム及び方法によって、コンピュータ・システムにおける不要なアプリケーションを検出することができる。
【００１４】
一実施形態によれば、計算デバイス上の、不要なアプリケーションを検出するためのコンピュータ・システムは、収集モジュールを備え、前記収集モジュールは、前記コンピュータ・システムにインストールされたアプリケーションを取得し、前記取得されたアプリケーションを作成している少なくとも１つのファイルを検出し、前記検出されたファイルと同じコンピュータ・システムにある少なくとも１つの他のファイルと、前記検出されたファイルとの関係（後述する（１）〜（４）のうち少なくとも２つの条件が満たされる場合は、２つのファイルは関係しているものとする）についての情報を収集し、前記収集された情報を検索モジュールに送信するように構成される。前記検索モジュールは、少なくとも１つの見つかったファイルを含んでいる少なくとも１つのアプリケーションであって前記収集モジュールにより取得されたアプリケーションと同じコンピュータ・システムにインストールされているアプリケーションを検出し、前記見つかったアプリケーションを特定する情報をスキャンモジュールに送信するように構成される。前記検索モジュールは、少なくとも１つの見つかったファイルを含んでいる少なくとも１つのアプリケーションであって前記収集モジュールにより取得されたアプリケーションと同じコンピュータ・システムにインストールされているアプリケーションを検出し、前記見つかったアプリケーションを特定する情報をスキャンモジュールに送信するように構成される。前記スキャンモジュールは、前記取得されたアプリケーション及び前記取得された情報から特定されたアプリケーションの使用の頻度であってコンピュータ・システムのアプリケーションにより実行された動作の回数として規定される使用頻度を判定し、前記取得されたアプリケーション及び前記取得された情報から特定されたアプリケーションの使用の頻度を比較することで、前記取得されたアプリケーションを不要なアプリケーションであると決定するように構成される。
＜条件＞
（１）前記ファイルは、同じアプリケーションにより作成される。
（２）前記ファイルは同じネットワークアドレスからコンピュータにロードされる。
（３）前記ファイルの修正に係る時間間隔は、選択された閾値よりも小さい。
（４）前記ファイルは同一又は類似の属性若しくはデータを有している。
【００１５】
別の実施形態によれば、前記ファイルの修正に係る時間間隔の閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである。
【００１６】
スキャンされるアプリケーションを作り出し且つこれに関係するファイルの、コンピュータ・システムへのインストールに係る時間間隔は、閾値であって１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである閾値よりも小さい。
【００１７】
別の実施形態によれば、前記コンピュータ上の前記ファイルを作成する前記アプリケーションは、インストールするプログラムである。
【００１８】
別の実施形態によれば、前記判定工程は、次に掲げる（１）〜（４）の少なくとも１つの頻度を判定することを備える。
（１）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションを実行する。
（２）前記コンピュータ・デバイスのオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）を、それぞれのアプリケーションが呼び出す。
（３）前記コンピュータ・デバイスへのインストールからアンチウィルス・スキャンまで、それぞれのアプリケーションに関連付けられているファイルを修正する。
（４）それぞれアプリケーションのインタ−フェースを用いて、それぞれのアプリケーションとのデータ通信を行うための動作を起こす。
【００１９】
別の実施形態によれば、コンピュータ・デバイスにインストールされた１つ又は複数の不要なアプリケーションを検出する、コンピュータで実行可能な方法であって、
取得工程と、検出工程と、ファイル特定工程と、アプリケーション特定工程と、判定工程と、決定工程とを備え、前記取得工程では、前記コンピュータ・デバイスのプロセッサを介して、前記コンピュータ・デバイスにインストールされた第１アプリケーションと関連付けられている情報を取得し、前記検出工程では、第１アプリケーションと関連付けられている第１ファイルを検出し、前記ファイル特定工程では、選択された条件に少なくとも基づいて、第１ファイルと関連し且つ前記コンピュータ・デバイスにインストールされた第２ファイルを特定し、前記アプリケーション特定工程では、第１及び第２ファイルのうちの少なくとも１つを使って前記コンピュータ・デバイスにインストールされた第２アプリケーションを特定し、前記判定工程では、第１及び第２アプリケーションそれぞれの使用頻度を判定し、前記決定工程では、前記使用頻度に基づいて、第１アプリケーションが不要なアプリケーションであるか否かを決定する。
【００２０】
別の実施形態によれば、コンピュータ・デバイスにインストールされた１つ又は複数の不要なアプリケーションを検出するためのシステムであって、少なくとも１つのプロセッサを備え、前記プロセッサは、前記コンピュータ・デバイスにインストールされた第１アプリケーションと関連付けられている情報を取得第１アプリケーションと関連付けられている第１ファイルを検出し、選択された条件に少なくとも基づいて、第１ファイルと関連付けられている第２ファイルを特定し、第１及び第２ファイルの少なくとも１つを使って前記コンピュータ・デバイスにインストールされた第２アプリケーションを特定し、第１及び第２アプリケーションそれぞれの使用頻度を判定し、前記使用頻度に基づいて、第１アプリケーションが不要なアプリケーションであるか否かを決定する、ように構成される。
【００２１】
上述した実施形態の簡単な説明は、本発明の基本的な理解を提供するのに役立つ。この概要は、全ての考えられる側面の詳細な展望ではなく、全ての側面の鍵となるものや決定的な要素を特定することを意図していないし、本発明の全ての側面を描写することも意図していない。その唯一の目的は、前置きとして、１つ又は複数の側面を表し、その後、本発明のより詳細な説明に続くものである。これを達成するため、本発明の１つ又は複数の側面が説明されて、特許請求の範囲においても主張される。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係り、コンピュータ・デバイス上の不要なソフトウェアを検出するのためのシステム例の概要を示している。
【００２３】
【図２】本発明の実施形態に係り、コンピュータ・デバイス上の不要なソフトウェアを検出するの方法例の概要を示している。
【００２４】
【図３】本発明の実施形態に係り、コンピュータ・デバイスにインストールされたファイルとアプリケーションに基づいて、インストールされたパッケージの再構成の概要を示している。
【００２５】
【図４】本発明に係るシステム及び方法が実現可能なコンピュータ・システム、パーソナル・コンピュータ、又はサーバの例を示している。
【００２６】
添付の図面は、本明細書の一部として組み入れられ、この指定の一部を構成し、発明の詳細な説明とともに本発明の１つ又は複数の例面を説明し、それらの原理と実施を説明するのに役立ちうるものである。
【発明を実施するための形態】
【００２７】
例示する実施形態は以下、コンピュータ・デバイス上の不要なソフトウェアを検出するシステム、方法、コンピュータプログラム製品として説明される。当業者であれば、以下の記載はあくまでも例示であり、あらゆる制限をも意図するものではないことは当然に意味するところである。本発明が利益となる分野の当業者であれば、別例をも容易に示唆されることであろう。添付の図面ではその詳細を示すための参照符号が付されている。図面と以下の記載において、同一の又はそれに相当するものについては、同一の参照符号を用いるものとする。
【００２８】
本発明の様々な実施形態を説明するために、以下の通り定義や概念を説明する。
【００２９】
不要なアプリケーションとは、ユーザの「意識的な」参加なしにコンピュータ又はコンピュータ・デバイスにインストールされたアプリケーションであって、明らかに悪意のある動作をするものではないものの動作中にユーザに不便をきたすものである（広告素材という侵入的なデモを用いて、基礎となるオペレーティングシステムやコンピュータ又はコンピュータ・デバイスのアプリケーションについてのユーザ設定を変更すること、例えばブラウザのスタートページを変更する等）。コンピュータ・システムの動作実行におけるユーザの「意識的な」参加とは、実行されている動作の性質とこれらの動作に伴う結果との理解が含まれうる。
【００３０】
不要なファイルとは、不要なアプリケーションを作り出すファイルを含みうる。
【００３１】
正当なアプリケーションとは、アンチウィルス・スキャンを実行する際の不要でないアプリケーションを含みうる。
【００３２】
正当なファイルは、正当なアプリケーションを作り出すファイルを含みうる。
【００３３】
図１は、本発明の実施形態に係り、コンピュータ・デバイス上の不要なソフトウェアを検出するのためのシステム例の概要を示している。不要なソフトウェアの検出のためのシステムの概要は、ファイル及びアプリケーションの記憶部１０１、ユーザ動作履歴の記憶部１０２、収集モジュール１１１、検索モジュール１１２、及びスキャンモジュール１１３を備える。
【００３４】
ファイル及びアプリケーションの記憶部１０１は、以下（１）〜（３）をするように構成される。
（１）ユーザのコンピュータにインストールされたアプリケーションを記憶する。
（２）ユーザのコンピュータにインストールされたアプリケーションに関連付けられているファイルを記憶する。
（３）当該アプリケーション及びファイルを収集モジュール１１１に提示する。
【００３５】
ユーザ動作履歴の記憶部１０２は、以下（１）〜（３）をするように構成される。
（１）ドライバ（コンピュータマウス、キーボード等）の補助によりコンピュータ・システムにインストールされたアプリケーションにおけるユーザの動作を追跡する。
（２）当該追跡された動作を記憶する。
（３）当該記憶された情報をスキャンモジュール１１３に提示する。
【００３６】
例えば、ブラウザのプラグインである「アドブロック」のグラフィックのインターフェースを使用しているユーザは、プラグインの何らかのパラメータをインストールできて、ユーザは、テキストデータを入力したり、インターフェース上の要素（押ボタン、スライダ等）を操作することができる。ユーザ動作履歴の記憶部１０２は、コンピュータマウスとキーボードのドライバの補助によって、上述のプラグイン「アドブロック」のユーザの動作を追跡し、追跡された動作に係る情報（ボタンが押された時間、テキスト入力、グラフィック・インタフェースの動作時間、ユーザに操作される要素の識別等）を保存する。
【００３７】
収集モジュール１１１は、以下（１）〜（４）をするように構成される。
（１）コンピュータ・システムにインストールされているアプリケーションをファイル及びアプリケーションの記憶部１０１から取得する。
（２）当該取得されたアプリケーションに関連付けられている少なくとも１つのファイルを検出する。
（３）当該検出されたファイルと同じコンピュータ・システムにある少なくとも１つの他のファイルと、検出されたファイルとの関係（後述のうち少なくとも２つの条件が満たされる場合は、２つのファイルは関係しているものとする）についての情報を収集する。
（４）当該収集された情報を検索モジュール１１２に送信する。
＜条件＞
・ファイルは、同じアプリケーションにより作成された。
・ファイルは同じネットワークアドレスからコンピュータにダウンロードされた。
・ファイルの修正に係る時間間隔は、選択された閾値よりも小さい。
・ファイルは同一又は類似の属性若しくはデータを有している。
・１つのファイル（第１ファイル）は、データであって第２ファイルに含まれているデータとの類似係数が、選択された閾値よりも大きいデータを含みうる。
・互いに異なる複数のファイルの属性は、互いに一致している。
・ファイルのパスは、同じレジストリ・ブランチにあるレジストリ・キーの値の範囲に入りうる。
・ファイルについての情報を含むレジストリ・エントリの修正に係る時間間隔は、所定の閾値よりも小さい。
【００３８】
アプリケーションと関連付けられているファイルは、このファイルのパスを示すウィンドウズ・レジストリのエントリを分析することにより、アプリケーションの起動を担うファイルと同じパスを有するファイルの検索結果として検索されうる。
【００３９】
ファイルの修正に係る時間間隔の閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである。
【００４０】
スキャンされるアプリケーションに関連付けられているファイルの、コンピュータ・システムへのインストールに係る時間間隔は、閾値であって１秒未満、１秒〜１分、及び１分〜１０分の少なくとも１つである閾値よりも小さい。
【００４１】
例えば、「ｉｌｌｕｓｔｒａｔｏｒ．ｅｘｅ」及び「Ｂｒｉｄｇｅ．ｅｘｅ」というファイルは、様々なアプリケーションと関連付けられうる。「アドビ・イラストレータＣＳ６」及び「アドビ・ブリッジＣＳ６」は、両方とも「アドビ・クリエイティブスイート」というグラフィックスパッケージに属する。「ｉｌｌｕｓｔｒａｔｏｒ．ｅｘｅ」及び「Ｂｒｉｄｇｅ．ｅｘｅ」というファイルは、２０１５年１１月１０日の１４時３２分１５．１７１秒と２０１５年１１月１０日１４時３２分１６．０２５秒という、事実上同じ時間にそれぞれ作成される。これは、１秒未満の違いであり、「アドビ・イラストレータＣＳ６」及び「アドビ・ブリッジＣＳ６」というアプリケーションが、同時にインストールされたことを意味する。したがって、「ｉｌｌｕｓｔｒａｔｏｒ．ｅｘｅ」及び「Ｂｒｉｄｇｅ．ｅｘｅ」というファイルは、お互いに関連付けられると決定されうる。
【００４２】
コンピュータのファイルを作成しているアプリケーションは、インストーラプログラムでありうる。
【００４３】
例えば、「ｗｏｒｄ．ｅｘｅ」及び「ｅｘｃｅｌ．ｅｘｅ」といったファイルは、それぞれ  「マイクロソフト・ワード２０１３」及び「マイクロソフト・エクセル２０１３」というアプリケーションの一部であるが、「マイクロソフト・オフィス２０１３」というインストール・パッケージ（インストールプログラムであって「ｏｆｆｉｃｅ２０１３．ｍｓｉ」というファイルの起動を開始するもの）を作動させたことで、コンピュータ・システムにおいて作成されたものである。したがって、少なくともコンピュータ・システムにおいてそれらが同じアプリケーション（「マイクロソフト・オフィス２０１３」というインストール・パッケージ）により作成されたので、「ｗｏｒｄ．ｅｘｅ」及び「ｅｘｃｅｌ．ｅｘｅ」というファイルが関係していると決定されうる。  
【００４４】
別の例として、「マカフィー・アンチウィルス・プラス」というアンチウィルスパッケージのファイルのうちの１つであって、「アドビ・フラッシュ」、及び「ｍｃａｆｅｅ．ｅｘｅ」というアプリケーションのドライバである「ｆｌａｓｈ２１．０．０．１９７．ｄｌｌ」というファイルについても同様に説明がつく。両方のファイルは、ブラウザを作動させ且つ「ａｄｏｂｅ．ｃｏｍ」というサイトを訪問し、ＡｃｔｉｖｅＸを使用することでコンピュータ・システムにおいて作成されたものである。ユーザによる設定又はデフォルト設定で、によって、インストール・パッケージが訪問されたサイト上で動的に形成される。従って、「ｆｌａｓｈ２１．０．０．１９７．ｄｌｌ」及び「ｍｃａｆｅｅ．ｅｘｅ」というファイルは、関係していると決定されうる。なぜなら、それらのファイルは同じネットワークアドレスからコンピュータ・システムにダウンロードされたからである。
【００４５】
ファイルに含まれているデータは、ファイルのリソース（ダイアログウィンドウ、イメージ、ビデオ及びオーディオレコーディングを含むメディアデータ等といったグラフィック・インタフェース要素の構造の説明等）であるかもしれない。  
【００４６】
例えば、ファイルリソースに蓄えられたＪＰＥＧとＰＮＧイメージであってこれらが類似の色情報を有するものは、同様であると考えられうる。より詳細には、イメージの個々のピクセルは、色をＲＧＢフォーマットで記憶することができて、色はＹＵＶ表現に変換される。すべての蓄えられたイメージは、そのイメージに係る個々のチャネルＹ、Ｕ、Ｖについて、互いに比較されて、すべてのピクセルの間の色分布のヒストグラムが決定され且つ形成されうる。それぞれのイメージに対して、３つの２５６次元のベクトルが取得され、そこから内積の数値を決定する。かかる内積は、イメージの類似の度合いを示すもので、０に近いほどより類似の度合いが高い。
【００４７】
ファイルリソースに記憶された録音音声であって類似のサウンドデータを有するものも、同様であると考えられる。例えば、録音音声（録音音声はサウンドブロックのセットを含みうる）の各ブロックは、サウンドデータが与えられた瞬間に音の特徴に関する情報（周波数や長さ）を記憶し、録音音声のすべてのブロックの選択された特徴（周波数等）のセットは、Ｎ次元ベクトルを有する。かかる２つのベクトルの内積の数値は、２つの録音音声の類似の度合いが示すもので、０に近いほど類似の度合いが高い。
【００４８】
ファイルリソースに記憶された撮影動画についても、これはフレームとサウンドトラックのセットを含みうるので、上述したイメージや録音音声と同様の方法で、類似の度合いを決定することができる。
【００４９】
ダイアログウィンドウ間の類似度は、ダイアログウィンドウの様々なグラフィック要素に関連付けられたデータの類似度によって決定されうる。例えば、少なくとも２つのダイアログウィンドウと関係する情報は、特徴セットであってＮ次元ベクトルを表し且つ各メトリックがダイアログウィンドウのグラフィックの要素の特徴のうちの１つと関係するという、ダイアログウィンドウのグラフィックの要素の特徴セットを表しうる。かかる２つベクトルの内積の数値が決定され、２つのダイアログウィンドウが少なくとも２つのダイアログウィンドウの類似の度合いを示すもので、０に近いほど類似の度合いが高い。
【００５０】
例えば、アプリケーション「マイクロソフト・ワード」のすべてのファイルは、アプリケーション「マイクロソフト・エクセル」のファイルと、以下によって関連付けられる。
・デジタル署名（「マイクロソフト・ワード」と「マイクロソフト・エクセル」を作り出している実行可能なファイルのリソースのうちの１つ）。
・ソフトウェアのメーカー（マイクロソフト）のメーカー。
・ファイルシステムにおけるインストールに係る共通パス（「Ｃ：￥Ｐｒｏｇｒａｍｓ  Ｆｉｌｅ￥マイクロソフト・オフィス２０１３」）。
【００５１】
検索モジュール１１２は、以下（１）及び（２）をするように構成される。
（１）収集モジュール１１１により取得されたアプリケーションと同じコンピュータ・システムにインストールされているアプリケーションであって、収集モジュール１１１により見つけられた少なくとも１つのファイルを含んでいる少なくとも１つのアプリケーションを検出する。
（２）検出されたアプリケーションを特定する情報をスキャンモジュール１１３に送信する。
【００５２】
検出されたアプリケーションを特定する情報は、少なくとも以下の（１）〜（３）を含みうる。
（１）個々のアプリケーションの識別子（例えば、コンピュータ・システムにインストールされたアプリケーションについての情報を含んでいるレジストリ・ブランチに蓄えられた個々のアプリケーションの名前）。
（２）個々のアプリケーションに関連付けられたファイルのパス。
（３）個々のアプリケーションをコンピュータ・システムにおいて起動させるためのルール（例えば、実行可能なファイルのパスとスタートキーとを含んでいる開始ライン）。
【００５３】
スキャンモジュール１１３は、以下（１）及び（２）をするように構成される。
（１）収集モジュール１１１より取得されたアプリケーションと検索モジュール１１２により取得された情報から特定されたアプリケーションとの使用頻度（コンピュータ・システムのアプリケーションにより実行された行動の数）を判定する。
（２）収集モジュール１１１により取得されたアプリケーションと検索モジュール１１２により取得された情報から特定されたアプリケーションとの使用頻度との比較に基づき、収集モジュール  １１１により取得されたアプリケーションを不要なアプリケーションとして検出する。
【００５４】
アプリケーションの使用頻度とは、以下（１）〜（４）の何れかでありうる。
（１）アプリケーションについて、コンピュータ・システムにインストールされてからアンチウィルス・スキャンを実行されるまでのアプリケーションの実行頻度。
（２）コンピュータ・システム上での動作中における、アプリケーションによるオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）機能の呼び出し頻度。
（３）アプリケーションについて、コンピュータ・システムでファイルが作成されてからアンチウィルス・スキャンを実行するまでにアプリケーションに関連付けられたそのファイルの修正頻度。
（４）データをアプリケーションに送信するため、アプリケーションのインタフェース要素を用いて実行される動作の頻度。
【００５５】
収集モジュール１１１により得られたアプリケーションと検索モジュール１１２により取得された情報により特定されたアプリケーションとの使用頻度は、以下（１）〜（３）のように実行される。
（１）個々のアプリケーションの使用頻度は、上述の頻度のうちの１つ又は複数から成り、多次元のベクトルであってその成分がアプリケーションの使用頻度を構成している頻度のうちの１つを表すベクトルとして表現される。例えば、θ＝｛θ１，θ２，・・・θｎ｝であり、各成分は以下を表している。
・θ：アプリケーションの使用頻度
・θ１：アプリケーションについて、コンピュータ・システムにインストールされてからアンチウィルス・スキャンを実行されるまでの起動頻度。
・θ２：コンピュータ・システム上での動作中における、アプリケーションによるオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）機能の呼び出し頻度。
・θ３：アプリケーションについて、コンピュータ・システムでファイルが作成されてからアンチウィルス・スキャンを実行するまでにアプリケーションに関連付けられたそのファイルの修正頻度。
・θ４：データをアプリケーションに送信するため、アプリケーションのインタフェース要素を用いて実行される動作の頻度。
（２）２つのベクトルの内積を計算する。これは、個々のベクトルがアプリケーションの使用頻度を表すものであり、上述のものである。つまり、ω＝〈θ、φ〉＝θ１×φ１＋θ２×φ２＋・・・＋θｎ×φｎである。ただし、
・θ：アプリケーション＃１の使用頻度
・φ：アプリケーション＃２の使用頻度
である。
（３）計算された値が、選択された閾値と比較され、当該計算された値が閾値よりも大きいときは、収集モジュール１１１により取得されたアプリケーションが不要であると決定されうる。
【００５６】
例えば、カスタムアセンブリインストール・パッケージの補助によってインストールされたアプリケーション「マイクロソフト・ワード」及び「アドブロック・プラス」の使用頻度が、同時にいくつかの特徴のグループとなりうる。
マイクロソフト・ワードについて、
（１）アプリケーションを実行する頻度（例えば１日ごと等）
（２）アプリケーションにデータを送信するためにアプリケーションのインタフェース要素を用いて実行された動作の頻度（ユーザがテキストをタイプしている場合に１秒あたり１回等）。
アドブロック・プラスについて
（３）アプリケーションを実行する頻度（例えば１日あたり１０回等）
（４）アプリケーションにデータを送信するためにアプリケーションのインタフェース要素を用いて実行された動作の頻度（ユーザがアプリケーション設定を変更している場合に１秒あたり０．０００００３４回等）。
【００５７】
マイクロソフト・ワード及びアドブロック・プラスの、得られた使用頻度の比較結果は、ベクトルの内積として表される数値である。
ω＝〈θ，φ〉＝θ１φ１＋θ２φ２
ここで、
・ω：マイクロソフト・ワードθとアドブロック・プラスφの使用の頻度の比較の結果。
・θ１：マイクロソフト・ワードの実行頻度
・φ１：アドブロック・プラスの実行頻度
・θ２：マイクロソフト・ワード・アプリケーションのインタフェース要素を用いて実行された動作の頻度
・φ２：アドブロック・プラス・アプリケーションのインタフェース要素を用いて実行された動作の頻度
【００５８】
アプリケーションの使用頻度は、アプリケーションがどの程度積極的に使用されているかだけではなく、どの程度ユーザが「意識的に」がそのアプリケーションを使用するかを示しうる。例えば、コンピュータ・システムにインストールされたアプリケーションがグラフィック・インタフェースを有しているが、ユーザがそれを使っていない（すなわち、キーボード、マウス、又は別のマニピュレータによってグラフィック・インタフェースの要素で動作させない）場合、そのアプリケーションは不要であると高確率で断言できる。そのようなアプリケーションが、他のアプリケーションとともにそのインストール・パッケージからインストールされた場合には、かかるアプリケーションが不要であると断言できる。こうして、様々なコンピュータ及び様々なユーザに対する同一のアプリケーションが、適当なものであったり不要であったりと決定することができる。
【００５９】
以下、本発明の実施形態に係り、ユーザのコンピュータ又はコンピュータ・デバイスにおける不要なソフトウェアを検出するための例示的なシステムを説明する。  
【００６０】
コンピュータ・システムにおいて、不要なアプリケーションがないかの検索は、コンピュータ・システムのアンチウィルス・スキャンの定期実行について確立されたセキュリティ方針に少なくとも基づいて開始しうる。収集モジュール１１１は、ファイル及びアプリケーションの記憶部１０１により提供されるデータ（特に、レジストリ・ブランチに入力されたデータであってコンピュータ・システムにインストールされたアプリケーションについての情報を含んでいるデータ）に少なくとも基づいて、ブラウザ用プラグインである「ヤンデックス・ツールバー」というアプリケーションを検出できる。レジストリに入力されたブラウザ設定において、「ヤンデックス・ツールバー」についてのエントリが確立され、「ヤンデックス・ツールバー」というアプリケーションに関連付けられたファイルへのパスを示し、「グーグル・クローム」というブラウザ用のプラグイン機能を実行する（「Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ｇｏｏｇｌｅ￥Ｃｈｒｏｍｅ￥Ｐｌｕｇｉｎｓ￥ｙｔｂａｒ．ｅｘｅ」）。  
【００６１】
更に検索モジュール１０２は、このファイルとコンピュータ・システムに関連付けられた他のファイルとの関係に基づいて、「ｙｔｂａｒ．ｅｘｅ」というファイルに係る情報を収集しうる。この目的のために、以下の動作の何れかが実行されうる。
・１分未満の「ｙｔｂａｒ．ｅｘｅ」の作成時間とは異なる作成時間であるファイルの検索が実行される。
・「ｙｔｂａｒ．ｅｘｅ」と同じディレクトリ（又は似たような名前のディレクトリ、例えば「．．￥Ｃｈｒｏｍｅ￥Ｐｌｕｇｉｎｓ￥ｙｔｂａｒ．ｅｘｅ」と「．．￥Ｆｉｒｅｆｏｘ￥Ｐｌｕｇｉｎｓ￥ｙｔｂａｒ２．ｅｘｅ」）に位置するファイルの検索が実行される。
【００６２】
結果として、別の数ダースのファイルであって、現在調査中の「ｙｔｂａｒ．ｅｘｅ」又は類似のパスとしてコンピュータ・システムにあるファイルを同時に検出しうる。どのアプリケーションが、「ヤンデックス・ツールバー」及び「Ｋ−Ｌｉｔｅコーデック」という検出されたファイルと関連付けられるかが決定されうる。
【００６３】
アプリケーションが、それらのメイクアップに含められているファイルを通じてお互いに関係があると決定された後に、スキャンモジュール１０３は、検出されたアプリケーションの使用頻度を更に判定しうる。  
【００６４】
例えば、＃１「Ｋ−Ｌｉｔｅコーデック」が、コーデックグループでありビデオ及びオーディオファイルとともに動作するもの（主にエンコードとデコード）であるといった結果が得られうる。
そして、以下（１）〜（３）が決定されうる。
（１）．ｄｌｌライブラリである、アプリケーションのファイル「Ｋ−Ｌｉｔｅコーデック」は  、１日あたり３０回起動された。
（２）アプリケーションのビデオ及びオーディオファイルとともに動作し、ユーティリティの実行可能な．ｅｘｅファイルから成っている「Ｋ−Ｌｉｔｅコーデック」が１日あたり２回実行された。
（３）「Ｋ−Ｌｉｔｅコーデック」アプリケーションのファイルのうちの１つであるユーティリティ（「ＧｒａｐｈＳｔｕｄｉｏＮｅｘｔ６４．ｅｘｅ」）は、コントロール要素を含むむグラフィック・インタフェースを有し、ユーザは、「ＧｒａｐｈＳｔｕｄｉｏＮｅｘｔ６４．ｅｘｅ」というファイルを毎回起動するために、そのコントロール要素を１５回用いて、インタラクションを図る（ボタンを押してパラメータを入力）。
【００６５】
得られたデータから、アプリケーション「Ｋ−Ｌｉｔｅコーデック」が積極的に動作し、ユーザにより定期的に使用されると判定されうる。ブラウザのためのプラグインである＃２「ヤンデックス・ツールバー」は、グラフィック・インタフェースを有し、ユーザに、天気予報、Ｅメールサービス等の様々なサービスへの急速なアクセスを提供する。
【００６６】
そして、以下（１）及び（２）が決定されうる。
（１）アプリケーション「ヤンデックス・ツールバー」のファイルが、１日あたり２５回（ブラウザが起動した回数と一致）実行された。
（２）アプリケーション「ヤンデックス・ツールバー」のグラフィック・インタフェースでは、アプリケーションにデータを送信するためにインターフェース要素を用いてなんらの動作も一度も実行されていない。
【００６７】
得られたデータから、アプリケーション「ヤンデックス・ツールバー」が以下（１）（２）であることが決定されうる。
（１）アプリケーション「Ｋ−Ｌｉｔｅコーデック」とともに同じインストール・パッケージ（Ｋ−Ｌｉｔｅコーデックパック・メガ）からインストールされたものであること。
（２）インストールされているが、ユーザには使用されていないこと。
【００６８】
したがって、アプリケーション「ヤンデックス・ツールバー」が不要であり、コンピュータ・システムから取り除かれるべきであることが決定される。
【００６９】
図２は、本発明の実施形態に係り、ユーザのコンピュータ又はコンピュータ・デバイス上の不要なソフトウェアを検出する方法２００の例示的なフローチャートを示している。  
【００７０】
不要なソフトウェアを検出する方法２００は、スキャン実行のためにアプリケーションが得られる収集モジュール１１１により実行されるステップ２０１と、少なくとも１つのスキャン中のアプリケーションに関連付けられたファイルを検出することができる収集モジュール１１１によって実行されるステップ２０２と、検出されたファイルに関係するファイルに対して検索を実行することができる検索モジュール１１２によって実行されるステップ２０３と、アプリケーションが決定される検索モジュール１１２によって実行されるステップ２０４と、アプリケーションの使用頻度が決定されるスキャンモジュール１１３によって実行されるステップ２０５と、スキャン中のアプリケーションが、不要なアプリケーションであると決定することができるスキャンモジュール１１３によって実行されるステップ２０６と、を含みうる。
【００７１】
ステップ２０１では、コンピュータ・システムにインストールされているアプリケーションは、ファイル及びアプリケーションの記憶部１０１から取得されうる。
【００７２】
ステップ２０２では、スキャン中の少なくとも１つのアプリケーションに関連付けられたファイルが検出されうる。
【００７３】
アプリケーションに関連付けられたファイルが、少なくとも１つのアプリケーションに関係するファイルへのパスを示すウィンドウズ・レジストリのエントリ分析によって、少なくとも１つのアプチケーションの起動を担うファイルと同じパスにあるファイルの検索結果として、検出されうる。
【００７４】
ステップ２０３では、ステップ２０２において上述のファイルと関係するファイルとして特定されうるコンピュータ・システムにおいて検索が実行され、もし以下の条件（１）〜（８）のうちの最低２つが満たされるならば２つのファイルは関係するものとする。
（１）ファイルが同じアプリケーションにより作成された。
（２）ファイルが同じネットワークアドレスからコンピュータにダウンロードされた。
（３）ファイル修正に係る時間間隔が所定の閾値未満である。
（４）同一種類のファイルである（例えば、ファイルの種類が、実行可能なファイル．ｅｘｅ、ライブラリ．ｄｌｌ、アーカイブ．ｚｉｐ、ビデオ．ａｖｉ等）。
（５）１つのファイルが、第２ファイルに含まれているデータの類似係数が、選択された閾値よりも大きいデータを含む。
（６）どちらのファイルもファイルの属性が類似又は同一である。
（７）ファイルの位置へのパスが、同じレジストリ・ブランチに位置するレジストリ・キーの値の範囲においてファイルのパスがある。
（８）ファイルについての情報を含んでいるレジストリのエントリの修正に係る時間間隔が、所定の閾値未満である。
【００７５】
ファイル修正に係る時間間隔に係る閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも何れかである。
【００７６】
スキャン中のアプリケーション及びこれに関係するファイルを作っているファイルのコンピュータ・システムのインストールの時間間隔は、選択された閾値未満であり、当該選択された閾値は、１秒未満、１秒〜１分、及び１分〜１０分の少なくとも何れかである。
【００７７】
コンピュータのファイルを作成しているアプリケーションは、インストールプログラム（インストーラ）でありうる。
【００７８】
ファイルに含まれているデータは、ファイルのリソース（ダイアログウィンドウ、イメージ、ビデオ、録音音声等のメディアデータを含むグラフィック・インタフェース要素の構造説明等）であるかもしれない。
【００７９】
ステップ２０４では、ステップ２０３において特定され且つ決定された少なくとも１つのファイルを含む少なくとも１つのアプリケーションが検出されうる。そのアプリケーションは、ステップ２０１において発見されたアプリケーションと同じコンピュータ・システムにインストールされている。
【００８０】
検出されたアプリケーションについての情報は、少なくとも以下（１）〜（３）の何れかを含みうる。
（１）個々のアプリケーションの識別子（例えば、コンピュータ・システムにインストールされたアプリケーションについての情報を含んでいるレジストリ・ブランチに蓄えられた個々のアプリケーションの名前）。
（２）個々のアプリケーションに関連付けられたファイルへのパス。
（３）コンピュータ・システムにおける個々のアプリケーションの起動のルール（例えば、実行可能なファイルと起動キーのパスを含むスタートライン）。
【００８１】
ステップ２０５では、ステップ２０１において取得された少なくとも１つのアプリケーションと、ステップ２０４において検出されたアプリケーションの使用頻度が判定される。かかるアプリケーションの使用頻度は、選択された時間期間でのコンピュータ・システムのアプリケーションにより実行された所定の動作の回数を示している。
アプリケーションの使用頻度は、以下（１）〜（４）の何れかである。
（１）コンピュータ・システムのそのインストールの瞬間から、アプリケーションのアンチウィルス・スキャンを実行する瞬間までアプリケーションの実行頻度。
（２）コンピュータ・システムにおいて動作中のアプリケーションによるオペレーティング・システムのＡＰＩ機能の呼び出しの頻度。
（３）コンピュータ・システムにおけるこれらの作成の瞬間から、アプリケーションのアンチウィルス・スキャンを実行する瞬間までの、そのアプリケーションに関連付けられたファイルの修正頻度。
（４）行動の頻度がアプリケーションにデータを転送するアプリケーショのインターフェース要素を用いて実行された動作の頻度。
【００８２】
ステップ２０６では、少なくともステップ２０１において取得されたアプリケーションとステップ２０４に検出されたアプリケーションとの使用頻度の比較に基づいて、ステップ２０１において取得されたアプリケーションが、不要なアプリケーションであると認定される。
【００８３】
ステップ２０１において取得されたアプリケーション及びステップ２０４において検出されたアプリケーションの使用頻度の比較は、以下（１）〜（３）のように実行されうる。
（１）ステップ２０５において取得された個々のアプリケーションの使用頻度は、上記頻度のうちの１つ又は複数から成り且つ多次元ベクトルとして表されうるもので、その成分は、アプリケーションの使用頻度から成る頻度のうちの１つを表しうる。例えば、
・θ＝｛θ１，θ２，・・・θｎ｝
・θ：アプリケーションの使用頻度
・θ１：アプリケーションについて、コンピュータ・システムにインストールされてからアンチウィルス・スキャンを実行されるまでの起動頻度。
・θ２：コンピュータ・システム上での動作中における、アプリケーションによるオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）機能の呼び出し頻度。
・θ３：アプリケーションについて、コンピュータ・システムでファイルが作成されてからアンチウィルス・スキャンを実行するまでにアプリケーションに関連付けられたそのファイルの修正頻度。
・θ４：データをアプリケーションに送信するため、アプリケーションのインタフェース要素を用いて実行される動作の頻度。
（２）２つのベクトルの内積を計算する。これは、個々のベクトルがアプリケーションの使用頻度を表すものであり、上述のものである。つまり、ω＝〈θ、φ〉＝θ１×φ１＋θ２×φ２＋・・・＋θｎ×φｎである。ただし、
・θ：アプリケーション＃１の使用頻度
・φ：アプリケーション＃２の使用頻度
である。
（３）計算された値が、選択された閾値と比較され、当該計算された値が閾値よりも大きいときは、ステップ２０１において取得されたアプリケーションが不要であると決定されうる。
【００８４】
図３は、本発明の実施形態に係り、ユーザのコンピュータ又はコンピュータ・デバイスにインストールされたファイルとアプリケーションに基づく、インストール・パッケージの再構成の概要を示している。
【００８５】
コンピュータ・システムにおいて作成されたファイル及びコンピュータ・システムにインストールされたアプリケーションに基づくインストール・パッケージの再構成に係る構成図は、コンピュータ・システムに正当な及び不要なアプリケーションをインストールするようにデザインされたインストール・パッケージ３００と、正当なファイル３０１と、不要なファイル３０２と、正当なアプリケーション３１１と、不要なアプリケーション３１２と、これらの互いに直接的な関係３２１と、間接的な関係３２２と、を含みうる。
【００８６】
１つのアプリケーションの構成が、第２アプリケーションの動作中に作成されたファイルを含む場合には、直接的な関係によって２つのアプリケーションが関係しているといえる。
【００８７】
本発明の実施形態によれば、アプリケーションの動作中にファイルが作成された場合には、直接的な関係によってアプリケーションとファイルとが関係しているといえる。
【００８８】
アプリケーションであってその構成に第２ファイルを含むアプリケーションの動作中に１つのファイルが作成された場合には、直接的な関係により２つのファイルが関係しているといえる。
【００８９】
両方のアプリケーションが、その動作中に共通のデータを使用する場合には、間接的な関係によりこの２つのアプリケーションが関係しているといえる。例えば、アプリケーション「マイクロソフト・ワード」と「マイクロソフト・エクセル」は、異なるアプリケーションであるが、操作中に、それらは、レジストリに入力された同じパラメータ（デフォルトの文書の保存場所のパス、スペルチェック設定等）を使用する。
【００９０】
アプリケーションであってその構成に２つのファイルを含むアプリケーションが間接的な関係により関係する場合には、間接的な関係によりこの２つのファイルが関係しているといえる。
【００９１】
アプリケーションが、別のアプリケーションであってその構成にファイルを含むアプリケーションと間接的な関係により関係する場合は、そのアプリケーションとそのファイルは、間接的な関係により関係しているといえる。
【００９２】
インストール・パッケージ３００に基づいて不要なアプリケーション３１２がインストールされてからかなりの時間が経過しているため、その後不要なアプリケーションに対するスキャンが実行されうる（例えば、アンチウィルスを用いる）。正当なアプリケーション３１１と不要なアプリケーション３１２とは実際的には大差がないので、それらの検出と識別は、アンチウィルスアプリケーションにとってとても難しい。たとえそうでも、不要なアプリケーション３１２がインストールされた元となるインストール・パッケージ３００そのものは、少なくともその動作（経験則に基づく分析を用いる）又はその構造の分析（署名の分析を用いる）に基づき、これを検出したときは不要であると識別しうる。しかし、アプリケーションをコンピュータ・システムにインストールするタスクを実行した後に、インストール・パッケージ３００はしばしば除去される（自動的又はユーザによって）。これにより、その分析が不可能になっていまう。本発明の実施形態によれば、直接的な関係３２１によってお互いに関連したファイルを含み且つコンピュータ・システムにインストールされた既存のアプリケーションの分析を実行することによって、間接的な関係３２２を再構成することを介してインストール・パッケージ３００又はアプリケーションのインストールにおける動作を再構成しうる。コンピュータ・システムにおいて生成されたファイル３０１、３０２及びコンピュータ・システムにおいてインストールされ且つ動作するアプリケーション３１１、３１２の、直接的な関係３２１及び間接的な関係３２２の分析に基づいて、ファイル及びアプリケーションが選択されうる。このファイル及びアプリケーションは、コンピュータ・システムのファイル３０１、３０２を作成するために使用されたインストール・パッケージの動作又はコンテンツにおいて同一のインストール・パッケージ３００から構成される。取得されたインストール・パッケージ３００の署名又は経験的な分析の結果、コンピュータ・システムのインストール・パッケージ３００によってインストールされた不要なアプリケーションを明らかにすることができる。
【００９３】
図３を参照すると、例えば、ステップ１として、すべての関連したファイル（正当なファイル３０１及び不要なファイル３０２の両方を含む、ただし検出時には判別できないかもしれない）が検出され得、以下（１）〜（６）の所定の条件が満たされるならば２つのファイルが関係するといえる。
（１）ファイルが同じアプリケーションにより作成された。
（２）ファイルが同じネットワークアドレスからコンピュータにダウンロードされた。
（３）ファイル修正に係る時間間隔が所定の閾値未満である；
（４）どちらのファイルもファイルの属性が類似又は同一である。
（５）ファイルの位置へのパスが、同じレジストリ・ブランチに位置するレジストリ・キーの値の範囲においてファイルのパスがある。
（６）ファイルについての情報を含んでいるレジストリのエントリの修正に係る時間間隔が、所定の閾値未満である。
【００９４】
アプリケーションと関連付けられているファイルは、このファイルのパスを示すウィンドウズ・レジストリのエントリを分析することにより、アプリケーションの起動を担うファイルと同じパスを有するファイルの検索結果として検索されうる。
【００９５】
スキャン中のアプリケーションに関連付けられたファイル及びこれに関係するファイルがコンピュータ・システムにインストールされる時間間隔は、選択された閾値未満である。
【００９６】
コンピュータのファイルを作成しているアプリケーションは、インストールプログラム（インストーラ）でありうる。
【００９７】
次にステップ２では、検出されたファイル及びアプリケーション間での依存関係を識別することができる。このアプリケーションは、その構成にファイルを作成することに加わったアプリケーションに関連付けられたファイル（直接的な関係３２１）だけでなく間接的な関係３２２によるファイルを含む。
【００９８】
例えば、ステップ１においてファイル「ｄａｔａ．ｄａｔ」及び「ｄａｔａ．ｉｎｉ」が検出され且つ同時に作成されるとともに、ステップ２において、アーカイブファイル「ｄａｔａ．ｄａｔ」及び「ｄａｔａ．ｉｎｉ」を保存しているアーカイブ「ａｐｐ．ｚｉｐ」というファイルが特定される。特定されたアーカイブは、ステップ１の実行時にコンピュータ・システムが使用しない「ａｐｐ．ｅｘｅ」も含みうる。このファイルは、間接的な関係３２２により「ｄａｔａ．ｄａｔ」及び「ｄａｔａ．ｉｎｉ」というファイルと関係すると考えられる。
【００９９】
ステップ２は、ステップ１において発見された全てのファイルに対して、ステップ１において関係するアプリケーション及びファイルが１つでも発見されるまでイタレーション処理が続けられる。コンピュータ・システムにおいてステップ１及びステップ２で発見された他のファイルより早く作成されたファイルは、ステップ２において発見された他のアプリケーションより早くコンピュータ・システムにインストールされたアプリケーションと同様に、インストール・パッケージ３００と関係するといえる。
【０１００】
ステップ３では、識別されたインストール・パッケージ３００に対してアンチ・ウィルススキャンが実行されうる。上述のアンチ・ウィルスアプリケーションのツールによる不要なアプリケーションを発見する方法では、不要なアプリケーションと正当なアプリケーションとが実際的に見分けがつかずこれが課題である。それらは、コンピュータ・システムに悪意のある動作を実行するわけではないからである。たとえそうでも、不要なアプリケーションがコンピュータ・システムにインストールされているときには、所定の動作が実行される必要があり（例えば、ユーザがのインストールまたはインストールの条件をキャンセルしないように）、これはすでにアンチ・ウィルスアプリケーションによって検出されているはずである。アンチウィルス・スキャンの結果、インストール・パッケージ３００が、不要なアプリケーションをインストールする可能性があると認められうるならば、そこにインストールされた全てのアプリケーション及び作成された全てのファイル、そして不要なアプリケーション３１２を識別するためのステップ１において発見されたファイルに至るまで、分析が実行されうる。具体的には、発見されたアプリケーションとファイルの使用頻度が判定される。アプリケーションの使用頻度とは、所定時間におけるコンピュータ・システムのアプリケーションにより実行された何らかの動作の回数を示すもので、以下（１）〜（４）の何れかでありうる。
（１）アプリケーションについて、コンピュータ・システムにインストールされてからアンチウィルス・スキャンを実行されるまでのアプリケーションの実行頻度。
（２）コンピュータ・システム上での動作中における、アプリケーションによるオペレーティングシステムのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ−Ｐｒｏｇｒａｍｍｉｎｇインターフェース）機能の呼び出し頻度。
（３）アプリケーションについて、コンピュータ・システムでファイルが作成されてからアンチウィルス・スキャンを実行するまでにアプリケーションに関連付けられたそのファイルの修正頻度。
（４）データをアプリケーションに送信するため、アプリケーションのインタフェース要素を用いて実行される動作の頻度。
【０１０１】
使用頻度が選択された閾値未満であるアプリケーションは、不要なアプリケーションであると決定される。
【０１０２】
例えば、ブラウザのためのプラグイン「アドビ・フラッシュプレーヤー」及びアンチウィルスソフトである「マカフィー・アンチウィルス・プラス」という２つのアプリケーションが、「アドビ・フラッシュ・インストーラ」というインストール・パッケージを介してコンピュータ・システムにインストールされたとする。「マカフィー・アンチウィルス・プラス」の使用頻度が０であったのに対して、「アドビ・フラッシュプレーヤー」の使用頻度は、１日１００回以上に達していた。これら使用頻度と選択された閾値（０．２５に近い値）とを比較することによって、「マカフィー・アンチウィルス・プラス」というアンチウィルスソフトは不要であると決定されうる。「マカフィー・アンチウィルス・プラス」がこのように使用頻度が低いのは、ユーザが、これを使用していないことを示しているといえる。  
【０１０３】
図４は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム（パーソナル・コンピュータやサーバ等）の例を示している。図示の通り、コンピュータ・システム２０は、ＣＰＵ２１と、システムメモリ２２と、ＣＰＵ２１と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含み得る。システムバス２３は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来より公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本的な入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４の使用によってオペレーティングシステムをロードする際等、パーソナル・コンピュータ２０の要素間の情報の伝達を担う基本的な手順を含む。
【０１０４】
パーソナル・コンピュータ２０は、データの読み書きのためのハードディスク２７、取り外し可能な磁気ディスク２９の読み書きのための磁気ディスクドライブ２８、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学メディア等の光学ディスク３１の読み書きのための光学式ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、及び光学式のドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、及び光学式のドライブインターフェース３４それぞれを横切るシステムバス２３と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナル・コンピュータ２０の他のデータのストレージのための電源依存のモジュールである。
【０１０５】
本発明は、ハードディスク２７、取り外し可能な磁気ディスク２９及び取り外し可能な光ディスク３１を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ（ＲＡＭ）等の他のタイプのコンピュータ情報メディア５６を使用してもよいことに留意されたし。また、これはコントローラ５５を介してシステムバス２３に接続される。
【０１０６】
コンピュータ２０は、ファイルシステム３６を有し、記録されたオペレーティング・システム３５の保持する。また追加のプログラムアプリケーション３７、他のプログラムモジュール３８、及びプログラムデータ３９を有する。ユーザは、入力デバイス（キーボード４０、マウス４２）を用いてコマンドと情報をパーソナル・コンピュータ２０に入力することができる。他の入力デバイス（不図示）：マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに次々接続しているシリアルポート４６を通じてコンピュータ・システム２０に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス（ＵＳＢ）に接続される。ディスプレイ機器のモニタ４７又は他のタイプは、また、ビデオアダプタ４８等のインターフェースと交差するシステムバス２３に接続している。モニタ４７に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス（不図示）を接続できる。
【０１０７】
パーソナル・コンピュータ２０は、１つ又は複数のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ（又はコンピュータ）４９は、図４に示すように、パーソナル・コンピュータ２０の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
【０１０８】
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク（ＬＡＮ）５０及びワイドエリアコンピュータ・ネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていにインターネットにアクセスすることができる。ＬＡＮ又はＷＡＮネットワークにおいて、パソコン２０は、ネットワークアダプタ又はネットワークインターフェース５１に交差するローカルエリアネットワーク５０に接続されている。ネットワークが用いられる時には、パソコン２０は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム５４又は他のモジュールを使用することができる。内部又は外部の機器であるモデム５４は、シリアルポート４６によりシステムバス２３と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法（Ｂｌｕｅｔｏｏｔｈ接続等）もあることに留意されたい。
【０１０９】
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及び方法を実施し得る。ソフトウェアにおいて実装される場合は、方法は不揮発性コンピュータ可読メディアの１つ又は複数の指示又はコードとして保存され得る。コンピュータ可読メディアは、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【０１１０】
様々な実施形態で、本発明のシステム及び方法が、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される何らかの機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という２つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる（図６において詳述したもの等）。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
【０１１１】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【０１１２】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【０１１３】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006416835.tif 000002
【図２】
0006416835.tif 000003
【図３】
0006416835.tif 000004
【図４】
0006416835.tif 000005