Win 2000/XP自啟動程式解析2005-05-09 17:36 作者: 出處: 瑞星社區 責任編輯:原野
當Windows完成登入過程,滑鼠指標從繁忙到安靜,除案頭上的表徵圖,你還看到了什嗎?也許表面沒什麼變化,但你有沒有注意到,你的系統托盤區多出了許多表徵圖,你的進程表中出現了很多的進程!Windows在啟動的時候,自動載入了很多程式,你知道它們是在什麼地方被載入的嗎?
許多程式的自啟動,給我們帶來了很多方便,這是不爭的事實,但是否每個自啟動的程式對我們都有用呢?更甚者,也許有病毒或木馬在自啟動行列,而你卻不知!
到現在,你是不是覺得瞭解自開機檔案的藏身之處有必要呢?那好,下面我就一一指出,讓它們無外可藏!
其實Windows2000/XP中的自開機檔案,除了從以前系統中遺留下來的Autoexec.bat檔案中載入外,按照兩個檔案夾和9個核心註冊表子鍵來自動載入程式的。
1)“啟動”檔案夾--最常見的自啟動程式檔案夾。它位於系統磁碟分割的“Documents and Settings-->User-->〔開始〕菜單-->程式”目錄下。這時的User指的是你登入的使用者名稱。
2)“All Users”中的自啟動程式檔案夾--另一個常見的自啟動程式檔案夾。它位於系統磁碟分割的“Documents and Settings-->All User-->〔開始〕菜單-->程式”目錄下。前面提到的“啟動”檔案夾啟動並執行是登入使用者的自啟動程式,而“All Users”中啟動的程式是在所有使用者下都有效(不論你用什麼使用者登入)。
3)“Load”索引值--一個埋藏得較深的註冊表索引值。位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows/load〕主鍵下。
4)“Userinit”索引值--它則位於〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon/Userinit〕主鍵下,也是用於系統啟動時載入程式的。一般情況下,其預設值為“userinit.exe”,由於該子鍵的值中可使用逗號分隔開多個程式,因此,在索引值的數值中可加入其它程式。
5)“Explorer/Run”索引值--與“load”和“Userinit”兩個索引值不同的是,“Explorer/Run”同時位於〔HKEY_CURRENT_USER〕和〔HKEY_LOCAL_MACHINE〕兩個根鍵中。它在兩個中的位置分別為〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run〕下。
6)“RunServicesOnce”子鍵--它在使用者登入前及其它註冊表自啟動程式載入前面載入。這個鍵同時位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce〕下。
7)“RunServices”子鍵--它也是在使用者登入前及其它註冊表自啟動程式載入前面載入。這個鍵同時位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunServices〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServices〕下。
8)“RunOnce/Setup”子鍵--其預設值是在使用者登入後載入的程式。這個鍵同時位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce/Setup〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce/Setup〕下。
9)“RunOnce”子鍵--許多自啟動程式要通過RunOnce子鍵來完成第一次載入。這個鍵同時位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce〕下。位於〔HKEY_CURRENT_USER〕根鍵下的RunOnce子鍵在使用者登入扣及其它註冊表的Run索引值載入程式前載入相關程式,而位於〔HKEY_LOCAL_MACHINE〕主鍵下的Runonce子鍵則是在作業系統處理完其它註冊表Run子鍵及自開機檔案夾內的程式後再載入的。在Windows XP中還多出一個〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnceEX〕子鍵,其道理相同。
10)“Run”子鍵--目前最常見的自啟動程式用於載入的地方。這個鍵同時位於〔HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run〕和〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run〕下。其中位於〔HKEY_CURRENT_USER〕根鍵下的Run索引值緊接著〔HKEY_LOCAL_MACHINE〕主鍵下的Run索引值啟動,但兩個索引值都是在“啟動”檔案夾之前載入。
11)再者就是Windows中載入的服務了,它的層級較高,用於最先載入。其位於〔HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services〕下,看到了嗎,你所有的服務載入程式都在這裡了!
12)Windows Shell──它位於〔HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon/〕下面的Shell字串類型索引值中,基預設值為Explorer.exe,當然可能木馬程式會在此加入自身並以木馬參數的形式調用資源管理員,以達到欺騙使用者的目的。
13)BootExecute──它位於註冊表中〔HKEY_LOCAL_MACHINE/System/ControlSet001/Session Manager/〕下面,有一個名為BootExecute的多字串值鍵,它的預設值是"autocheck autochk *",用於系統啟動時的某些自動檢查。這個啟動項目裡的程式是在系統圖形介面完成前就被執行的,所以具有很高的優先順序。
14)策略組載入程式——開啟Gpedit.msc,展開“使用者配置——系統管理範本——系統——登入”,就可以看到“在使用者登入時運行這些程式”的項目,你可以在裡面添加。在註冊表中[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Group Policy Objects/本地User/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run]你也可以看到相對應的索引值。