clsid

clsid

CLSID是指windows系統對於不同的應用程序,文件類型,OLE對象,特殊文件夾以及各種系統組件分配一個唯一表示它的ID代碼,用於對其身份的標識和與其他對象進行區分。

程序介紹


CLSID是指windows系統對於不同的應用程序,文件類型,OLE對象,特殊文件夾以及各種系統組件分配的一個唯一表示它的ID代碼,用於對其身份的標識和與其他對象進行區分。
先得說下GUID,它是Globally Unique Identifier的簡稱,中文翻譯為“全局唯一標識符”,在Windows系統中也稱之為Class Identifier,縮寫為CLSID。

構成分析


CLSID像人身份證一樣,是個類的唯一標識:
ID是英文IDentity的縮寫,是身份標識號碼的意思,就是一個序列號,也叫帳號,是一個編碼,而且是唯一的。
class是對某種類型的對象定義變數和方法的原型,是ID的樣式或屬性的補充。
在註冊表中展開HKEY_CLASSES_ROOT\CLSID\,在CLSID分支下面就可以看到很多的ID,這些ID對應的都是系統裡面不同的程序,文件,系統組件等。

運作基礎


CLSID是一個128位的隨機數,為了確保它的隨機性,避免重複,它的演演算法主要是從兩個方面入手:
1. 一部分數字來自於系統網卡的序列號,由於每一個網卡的MAC地址都不一樣,因此產生的ID也就會有差異。
2. 另外一部分數字來自於系統的當前時間。
有人計算過按照上面兩種方式得到ID的隨機性,得出的結論是:即使一台電腦每秒產生10000000個CLSID,也可以保證3240年不會重複。
為了避免衝突,微軟使用GUID作為CLSID,有專門生成GUID的函數,主要是根據當時的時間、機器地址等信息動態生成,理論上可保證全球代碼永不重複。

常見代碼


我的文檔:450D8FBA-AD25-11D0-98A8-0800361B1103
我的電腦:20D04FE0-3AEA-1069-A2D8-08002B30309D
網上鄰居:208D2C60-3AEA-1069-A2D7-08002B30309D
回收站:645FF040-5081-101B-9F08-00AA002F954E
Internet Explorer:871C5380-42A0-1069-A2EA-08002B30309D
控制面板:21EC2020-3AEA-1069-A2DD-08002B30309D
撥號網路/網路連接:992CFFA0-F557-101A-88EC-00DD010CCC48
任務計劃:D6277990-4C6A-11CF-8D87-00AA0060F5BF
印表機(和傳真):2227A280-3AEA-1069-A2DE-08002B30309D
歷史文件夾:7BD29E00-76C1-11CF-9DD0-00A0C9034933
公文包:85BBD920-42A0-1069-A2E4-08002B30309D
Web文件夾:BDEADF00-C265-11d0-BCED-00A0C90AB50F
網頁:25336920-03F9-11CF-8FD0-00AA00686F13

惡意廣告插件


上面說到電腦上所有的的軟體都有CLSID,那麼惡意插件也有他自己的CLSID。比如下面的:
偽造IE瀏覽器:871C5380-42A0-1069-A2EA-08002B303099
如果你懷疑自己的電腦是否中了偽造IE瀏覽器惡意廣告插件,進入註冊表,發現有這段CLSID,那麼就肯定中了。
CLSID的生成
生成GUID的C++代碼