什么是CLSID注册表项?

CLSID或类标识符是一个字母数字字符串(包括数字和字母字符)符号,用于表示组件对象模型或基于COM的程序的特定实例。它允许操作系统和软件(尤其是Windows)检测和访问软件组件,而无需通过名称识别它们。虽然微软已经逐步淘汰COM的使用,转而使用.NET基础设施,但COM仍然被用作许多常用程序的重要组件,并且没有计划停止使用。

使用COM和相应CLSID的对象示例包括ActiveX,“我的电脑”目录和Windows“开始”菜单。 Windows注册表中的典型CLSID可能如下所示:

{48E7CAAB-B918-4E58-A94D-505519C795DC}

您最有可能遇到CLSID是网站要求您更新ActiveX或其他程序。您的浏览器通过检查其CLSID来检测软件版本,并将此信息传输到网站而不会损害您的计算机。

但是,虚假媒体更新通常用于分发恶意软件和其他PC威胁,您应该避免从隐藏不信任的网站下载更新。

当好的CLSID条目变坏时

如果CLSID已损坏,您的PC可能会遇到与CLSID链接的程序相关的问题;一个常见问题是损坏CLSID导致软件无法验证自己的版本并自行更新。作为一种易于实施的解决方案,卸载并重新安装软件通常可以解决此问题。

与Registry CLSID条目相关的最常见问题是程序在卸载程序的其余部分时无法从注册表中删除其CLSID。虽然这是一个糟糕的编程习惯,使PC的注册表混乱无意义的文本条目,但未使用的CLSID条目不太可能损害您的计算机。但是,一些注册表清理程序和其他系统维护程序专门用于删除此基于CLSID的“垃圾邮件”。在非常极端的情况下,例如使用具有较低系统资源的计算机,具有太多未使用的CLSID条目的注册表可能会导致性能问题。

如果您有兴趣手动更正CLSID注册表项,则应该高度谨慎。对注册表的更改可能会以多种方式损坏您的操作系统,最明显的是导致它无法识别关键组件和程序。无论您是否有兴趣更改计算机的CLSID条目,建议在所有情况下通过系统还原点或其他方法备份Windows注册表。

消失的CLSID

虽然CLSID通常是您注册表中的永久文本条目 - 至少在您卸载它链接到的程序之前 - 临时文件夹和文件也可能在其名称中显示CLSID条目。这通常是由程序安装程序在解除文件之前解压缩要用于安装的文件引起的。安装完成后,大多数此类文件和文件夹应自动删除。如果编码不良或安装中断,您可能需要自己删除这些对象,尽管它们不会损坏您的计算机。

并非所有使用CLSID的程序都被强制将其CLSID条目写入Windows注册表。 RegFree或无注册COM组件能够将其CLSID条目存储在自己的EXE文件或单独的XML文件中。这具有某些优点,例如允许程序作为几个不同版本安装多次. 但是,RegFree COM支持更加有限,有时(在DirectX等系统范围的程序中)完全不可用。

CLSID的COM与COM Universe的其余部分之间的区别

带有CLSID的COM接口是一个组件对象模型,一种使用面向对象编程原理(或OOP)的接口方法。它与网络域名后缀.COM没有直接关系,后者表示顶级“商业”域名。

同样,CLSID的COM组件与.COM文件无关,后者是可执行文件或EXE文件的子类型。虽然某些Windows组件和其他程序使用.COM,但这种过时的文件格式需要在64位Windows操作系统上不包含(默认情况下)的MS-DOS模拟。

CLSID在恶意软件行业的地位

CLSID条目可用于运行有害程序以及安全程序。 Rootkit,特洛伊木马,恶意浏览器帮助程序对象和其他类型的恶意软件都可以利用CLSID系统自动启动或在触发某些条件时启动。大多数有能力的反恶意软件程序将检测并删除恶意CLSID条目以及与之关联的恶意软件。但是,与正常的CLSID条目一样,已删除的程序的未删除的CLSID恶意软件条目无法对您的计算机造成损害。

众所周知,恶意软件程序使用CLSID条目来调用其他程序(例如Internet Explorer)。这些程序可能显示也可能不显示打开的可见指示,但在大多数情况下,您应该能够通过任务管理器和类似实用程序检测打开程序的内存进程。此类攻击可用于在PC用户不知情的情况下进行各种在线攻击。虽然CLSID的知识对于临时PC的使用是不必要的,但是对其功能和限制的工作意识可以帮助解决软件和与注册表相关的错误,同时尽量减少挫败感。