Khóa đăng ký CLSID là gì?
CLSID hoặc Mã định danh lớp là một chuỗi ký hiệu chữ và số (cả số và ký tự bảng chữ cái) được sử dụng để đại diện cho một phiên bản cụ thể của Mô hình Đối tượng Thành phần hoặc chương trình dựa trên COM. Nó cho phép các hệ điều hành và phần mềm, đặc biệt dành cho Windows, phát hiện và truy cập các thành phần phần mềm mà không cần xác định tên của chúng. Mặc dù Microsoft đã loại bỏ dần việc sử dụng COM để ủng hộ cơ sở hạ tầng .NET, COM vẫn được sử dụng như một thành phần quan trọng cho nhiều chương trình được sử dụng phổ biến và không có kế hoạch ngừng sử dụng.
Ví dụ về các đối tượng sử dụng COM và CLSID tương ứng bao gồm ActiveX, thư mục Máy tính của tôi và Menu Bắt đầu của Windows. CLSID điển hình trong Windows Registry của bạn có thể trông giống như sau:
{48E7CAAB-B918-4E58-A94D-505519C795DC}
Khả năng bạn gặp phải CLSID nhiều nhất là khi một trang web yêu cầu bạn cập nhật ActiveX hoặc một chương trình khác. Trình duyệt của bạn phát hiện phiên bản phần mềm của bạn bằng cách kiểm tra CLSID của nó và truyền thông tin này đến trang web mà không làm ảnh hưởng đến máy tính của bạn.
Tuy nhiên, các bản cập nhật phương tiện giả mạo thường được sử dụng để phân phối phần mềm độc hại và các mối đe dọa PC khác và bạn nên tránh tải xuống các bản cập nhật từ các trang web mà bạn không tin tưởng một cách hoàn toàn.
Khi một mục nhập CLSID tốt trở nên tồi tệ
Nếu CLSID bị hỏng, PC của bạn có thể gặp sự cố liên quan đến chương trình mà CLSID được liên kết; một vấn đề phổ biến là CLSID bị hỏng dẫn đến phần mềm không thể xác minh phiên bản của chính nó và tự cập nhật. Là một giải pháp dễ thực hiện, việc gỡ cài đặt và cài đặt lại phần mềm của bạn thường khắc phục được sự cố này.
Sự cố phổ biến nhất liên quan đến mục nhập CLSID trong Registry là chương trình không thể xóa CLSID của nó khỏi Registry khi phần còn lại của chương trình được gỡ cài đặt. Mặc dù đây là một thực hành lập trình kém làm xáo trộn Registry của PC với các mục nhập văn bản vô nghĩa, mục nhập CLSID không sử dụng có thể không gây hại cho máy tính của bạn. Tuy nhiên, một số trình dọn dẹp sổ đăng ký và các chương trình bảo trì hệ thống khác chuyên xóa 'rác' dựa trên CLSID này. Trong những trường hợp rất khắc nghiệt, chẳng hạn như với một máy tính có tài nguyên hệ thống thấp, Sổ đăng ký có quá nhiều mục CLSID không sử dụng có thể gây ra các vấn đề về hiệu suất.
Nếu bạn quan tâm đến việc sửa các mục trong Sổ đăng ký CLSID theo cách thủ công, bạn nên thận trọng ở mức độ cao. Những thay đổi đối với Hệ thống đăng ký của bạn có thể làm hỏng hệ điều hành của bạn theo nhiều cách, đáng chú ý nhất là khiến nó không thể nhận ra các thành phần và chương trình quan trọng. Bất kể bạn có quan tâm đến việc thực hiện các thay đổi đối với các mục CLSID của máy tính hay không, việc có một Windows Registry sao lưu thông qua điểm khôi phục hệ thống hoặc phương pháp khác được khuyến khích trong mọi trường hợp.
CLSID Vanishing
Mặc dù CLSID thông thường là một mục nhập văn bản vĩnh viễn trong Sổ đăng ký của bạn - ít nhất là cho đến khi bạn gỡ cài đặt chương trình được liên kết với nó - các thư mục và tệp tạm thời cũng có thể hiển thị các mục nhập CLSID trong tên của chúng. Điều này thường do trình cài đặt chương trình giải nén các tệp để sử dụng để cài đặt trước khi gỡ bỏ chúng. Hầu hết các tệp và thư mục như vậy sẽ tự động xóa sau khi cài đặt xong. Trong trường hợp mã hóa kém hoặc cài đặt bị gián đoạn, bạn có thể cần phải tự xóa các đối tượng này, mặc dù chúng sẽ không làm hỏng máy tính của bạn.
Không phải tất cả các chương trình sử dụng CLSID đều bị buộc phải ghi các mục CLSID của chúng vào Windows Registry của bạn. Các thành phần COM RegFree hoặc Register-Free có khả năng lưu trữ các mục nhập CLSID của chúng trong các tệp EXE của riêng chúng hoặc trong các tệp XML riêng biệt. Điều này có một số lợi thế nhất định, chẳng hạn như cho phép một chương trình được cài đặt nhiều lần với nhiều phiên bản khác nhau. Tuy nhiên, sự hỗ trợ của RegFree COM bị hạn chế hơn và đôi khi (trong trường hợp các chương trình toàn hệ thống như DirectX) hoàn toàn không khả dụng.
Sự khác biệt giữa COM của CLSID và phần còn lại của COM Universe
Giao diện COM với CLSID là Mô hình Đối tượng Thành phần, một phương pháp giao diện sử dụng triết lý lập trình hướng đối tượng (hoặc OOP). Nó không có mối quan hệ trực tiếp với hậu tố miền web .COM, nghĩa là miền 'thương mại' cấp cao nhất.
Tương tự như vậy, các thành phần COM của CLSID không liên quan đến tệp .COM, là một loại con của tệp thực thi hoặc EXE. Mặc dù một số thành phần Windows và các chương trình khác sử dụng .COM, định dạng tệp lỗi thời này yêu cầu mô phỏng MS-DOS không được bao gồm (theo mặc định) trên hệ điều hành Windows 64-bit.
Vị trí của CLSID trong ngành công nghiệp phần mềm độc hại
Các mục nhập CLSID có thể được sử dụng để chạy các chương trình có hại, cũng như các chương trình an toàn. Rootkit, trojan, Đối tượng Trình trợ giúp Trình duyệt độc hại và các loại phần mềm độc hại khác, tất cả đều có thể sử dụng hệ thống CLSID để tự khởi chạy hoặc khi một số điều kiện nhất định được kích hoạt. Phần lớn các chương trình chống phần mềm độc hại có thẩm quyền sẽ phát hiện và xóa các mục CLSID độc hại cùng với phần mềm độc hại được liên kết với chúng. Tuy nhiên, giống như các mục nhập CLSID thông thường, các mục nhập phần mềm độc hại CLSID chưa xóa cho các chương trình đã bị xóa không có khả năng gây ra thiệt hại cho máy tính của bạn.
Các chương trình phần mềm độc hại cũng được biết là sử dụng các mục CLSID để thực hiện các cuộc gọi đến các chương trình khác (chẳng hạn như Internet Explorer). Các chương trình này có thể hiển thị hoặc không hiển thị dấu hiệu đang mở, mặc dù trong hầu hết các trường hợp, bạn có thể phát hiện tiến trình bộ nhớ của chương trình đang mở thông qua Trình quản lý tác vụ và các tiện ích tương tự. Các cuộc tấn công như vậy có thể được sử dụng để thực hiện các cuộc tấn công trực tuyến khác nhau mà người dùng PC không hề hay biết. Mặc dù kiến thức về CLSID là không cần thiết đối với việc sử dụng PC thông thường, nhưng nhận thức về các khả năng và hạn chế của nó có thể giúp giải quyết các lỗi liên quan đến phần mềm và Registry mà ít thất vọng.