CLSID レジストリ キーとは何ですか?
CLSID またはクラス識別子は、コンポーネント オブジェクト モデルまたは COM ベースのプログラムの特定のインスタンスを表すために使用される英数字 (数字とアルファベットの両方) 記号の文字列です。これにより、特に Windows のオペレーティング システムとソフトウェアが、名前で識別せずにソフトウェア コンポーネントを検出してアクセスできるようになります。 Microsoft は .NET インフラストラクチャを優先して COM の使用を段階的に廃止しましたが、COM は多くの一般的に使用されるプログラムの重要なコンポーネントとして使用され続けており、廃止される予定はありません。
COM と対応する CLSID を使用するオブジェクトの例には、ActiveX、マイ コンピュータ ディレクトリ、および Windows の [スタート] メニューが含まれます。 Windows レジストリの典型的な CLSID は次のようになります。
{48E7CAAB-B918-4E58-A94D-505519C795DC}
CLSID に遭遇する可能性が最も高いのは、Web サイトから ActiveX または別のプログラムを更新するように求められたときです。ブラウザは、CLSID をチェックしてソフトウェアのバージョンを検出し、コンピュータを危険にさらすことなくこの情報を Web サイトに送信します。
ただし、偽のメディア更新は悪意のあるソフトウェアやその他の PC の脅威を配布するために使用されることが多いため、暗黙的に信頼していない Web サイトから更新をダウンロードすることは避ける必要があります。
適切な CLSID エントリが無効になる場合
CLSID が破損している場合、CLSID がリンクされているプログラムに関連する問題が PC で発生する可能性があります。よくある問題の 1 つは、CLSID の損傷であり、その結果、ソフトウェアは自身のバージョンを確認して更新することができなくなります。実装が簡単な解決策として、ソフトウェアをアンインストールして再インストールすると、通常、この問題が解決されます。
レジストリの CLSID エントリに関連する最も一般的な問題は、プログラムの残りの部分をアンインストールするときに、プログラムがその CLSID をレジストリから削除できないことです。これは無意味なテキスト エントリで PC のレジストリを乱雑にする不適切なプログラミング手法ですが、未使用の CLSID エントリがコンピュータに害を及ぼす可能性は低いです。ただし、一部のレジストリ クリーナーやその他のシステム メンテナンス プログラムは、この CLSID ベースの「ジャンク」の除去に特化しています。システム リソースが少ないコンピュータなど、非常に極端な状況では、レジストリに未使用の CLSID エントリが多すぎると、パフォーマンスの問題が発生する可能性があります。
CLSID レジストリ エントリを手動で修正する場合は、十分に注意してください。レジストリに変更を加えると、オペレーティング システムがさまざまな形で損傷を受ける可能性があります。特に、重要なコンポーネントやプログラムを認識できなくなる可能性があります。コンピューターの CLSID エントリを変更することに関心があるかどうかに関係なく、システムの復元ポイントまたは別の方法で Windows レジストリをバックアップすることをお勧めします。
消える CLSID
CLSID は通常、レジストリ内の永続的なテキスト エントリですが、少なくともリンク先のプログラムをアンインストールするまでは、一時フォルダやファイルの名前に CLSID エントリが表示される場合もあります。これは多くの場合、インストールに使用するファイルを解凍してから削除するプログラム インストーラーが原因です。このようなファイルやフォルダーのほとんどは、インストールの完了後に自動的に削除されます。コーディングが不十分な場合やインストールが中断された場合は、これらのオブジェクトを自分で削除する必要がある場合がありますが、コンピューターに損傷を与えることはありません。
CLSID を使用するすべてのプログラムが、CLSID エントリを Windows レジストリに書き込む必要があるわけではありません。 RegFree または Registration-Free COM コンポーネントは、CLSID エントリを独自の EXE ファイルまたは別の XML ファイルに格納できます。これには、プログラムを複数の異なるバージョンとして複数回インストールできるなど、特定の利点があります。ただし、RegFree COM のサポートはより制限されており、(DirectX のようなシステム全体のプログラムの場合) 完全に利用できない場合があります。
CLSID の COM とその他の COM ユニバースの違い
CLSID を使用した COM インターフェイスは、コンポーネント オブジェクト モデルであり、オブジェクト指向プログラミング哲学 (OOP) を使用するインターフェイス方法です。トップ レベルの「商用」ドメインを表す Web ドメイン サフィックス .COM とは直接の関係はありません。
同様に、CLSID の COM コンポーネントは、実行可能ファイルまたは EXE ファイルのサブタイプである .COM ファイルとは関係ありません。一部の Windows コンポーネントおよびその他のプログラムは .COM を使用しますが、この古いファイル形式には、64 ビット Windows OS に (既定で) 含まれていない MS-DOS エミュレーションが必要です。
マルウェア業界における CLSID の位置付け
CLSID エントリは、安全なプログラムだけでなく、有害なプログラムの実行にも使用される可能性があります。ルートキット、トロイの木馬、悪意のあるブラウザ ヘルパー オブジェクト、およびその他の種類のマルウェアはすべて、CLSID システムを利用して、自動的に、または特定の条件がトリガーされたときに起動する可能性があります。有能なマルウェア対策プログラムの大半は、悪意のある CLSID エントリとそれに関連するマルウェアを検出して削除します。ただし、通常の CLSID エントリと同様に、削除されたプログラムの CLSID マルウェア エントリが削除されていなくても、コンピュータに損害を与えることはできません。
マルウェア プログラムは、CLSID エントリを使用して他のプログラム (Internet Explorer など) を呼び出すことも知られています。これらのプログラムは、開いていることを示す目に見える兆候を表示する場合と表示しない場合がありますが、ほとんどの場合、開いているプログラムのメモリ プロセスは、タスク マネージャーや同様のユーティリティで検出できます。このような攻撃は、PC ユーザーの知らないうちにさまざまなオンライン攻撃を実行するために使用できます。通常の PC の使用には CLSID の知識は必要ありませんが、CLSID の機能と制限を実際に認識しておくと、ソフトウェアとレジストリ関連のエラーを最小限のフラストレーションで解決するのに役立ちます。