Windows XP登錄檔詳解(轉)

worldblog發表於2007-08-11
Windows XP登錄檔詳解(轉)[@more@]

  特別提示:在修改登錄檔前請先備份登錄檔

  登錄檔是Windows作業系統的核心。它實質上是一個龐大的資料庫,存放有計算機硬體和全部配置資訊、系統和應用軟體的初始化資訊、應用軟體和文件檔案的關聯關係、硬體裝置說明以及各種網路狀態資訊和資料。可以說計算機上所有針對硬體、軟體、網路的操作都是源於登錄檔的。

  一、Windows XP登錄檔精解

  Windows XP是微軟公司於2001年10月份正式推出的新的Windows作業系統。Windows XP是Windows 2000的後續版本,以Windows 2000核心程式碼為基礎,不僅繼承了前者的可靠性和其它的優良效能,而且還加強了Windows Me作業系統的系統回覆、媒體播放器、影像獲取等新功能,給使用者提供了更穩定的執行環境和方便快捷的操作。

  正如上文所述,Windows XP是以Windows 2000核心程式碼為基礎的,也可是完全說成是Windows 2000的一個升級版本,在登錄檔方面,沒有發生太大的改變,登錄檔仍然是Windows XP的核心部件。

  1.Windows XP登錄檔的結構

  Windows XP的登錄檔同樣是以樹形結構組織的。它由兩個登錄檔子目錄樹組成:HKEY_LOCAL_MACHINE和HKEY_USERS。但是為了使登錄檔中的資訊更易於查詢,Windows XP預定義了五個子目錄樹。

  每個根項名均以HKEY_打頭,以便向軟體開發人員指出這是可以由程式使用的控制程式碼。控制程式碼是一個數值,用來識別資源便於程式進行訪問。

  由於登錄檔是樹形結構的,所以我們可以將登錄檔裡的內容分為樹枝和樹葉。樹枝下可以有多個樹枝,也可以有多個樹葉。這個樹枝,我們把它叫做“項”,樹葉呢,叫做“值項”。值項包括三部分:值的名稱、值的資料型別和值本身。

  2.Windows XP登錄檔編輯器

  我們知道,登錄檔內的所有資訊都是存放在System.dat、User.dat檔案中的,其中System.dat檔案包含了所有的硬體資訊和軟體資訊,User.dat包含了使用者資訊。如果在系統中配置了兩個或兩個以上的使用者,在WindowsProfile使用者名稱目錄中還存放有各個使用者的User.dat檔案,這些檔案都是二進位制資料檔案,修改登錄檔實際上就是對上述的三個檔案進行修改。但是,我們不能對這些二進位制資料檔案進行直接修改,而必須要藉助於登錄檔編輯器。登錄檔編輯器實際上就是我們檢視和修改登錄檔檔案的圖形介面。

  啟動Windows XP登錄檔編輯器的方法是:單擊“開始→執行”,在對話方塊中輸入“regedit”,然後點選“確定”按鈕,登錄檔編輯器就會被執行起來。它的介面和Windows 2000中的登錄檔編輯器很相似。

  和以前的Windows相比,登錄檔表編輯器有了一些改變。在“編輯”選單下,有一個“許可權”選單項,透過它,可以設定各個登錄檔項對於不同使用者的許可權。當然,你必須是管理員才可以執行此操作。

  在“檢視”選單中,有一個“顯示二進位資料”。透過它,可以方便的檢視二進位制資料的內容。

  提示:你可能還記得在Windows NT/2000中,還提供了一個32位的登錄檔編輯器Regedt32.exe,其介面類似於早期Windows的檔案管理器。在Windows XP中,雖然仍然提供了Regedt32.exe,但是Regedt32.exe實際上只是一個外殼,真正執行的還是Regedit.exe。也就是說,Windows XP已經拋棄了老版本風格的Regedt32.exe了。

  二、桌面外觀的修改例項

  1.全面定製“開始”選單中的圖示(適用範圍:Windows 9x/Me/NT/2000/XP)4.修改桌面專案的圖示和提示資訊(適用範圍:Windows 9x/Me/NT/2000/XP)

  2.增加和刪除“開始”選單中的專案5.定製資源管理器的模樣

  3.增加和刪除桌面的固定專案(適用範圍:Windows 9x/Me/NT/2000/XP)6.定製Internet Explorer(適用範圍:Windows 9x/Me/NT/2000/XP)

  1.全面定製“開始”選單中的圖示(適用範圍:Windows 9x/Me/NT/2000/XP)

  “開始”選單是使用者最常使用的,它裡面有“程式”、“文件”、“設定”、“搜尋”、“幫助”、“執行”和“關機”等幾項圖示,我們可以透過修改登錄檔來加以改變。

  首先執行登錄檔編輯器,進入到登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorerShell Icons。如果該登錄檔項不存在,則建立它。

  在該登錄檔項下建立如下表中羅列的字串型別的值項,並且修改它們的值為新的圖示。

  重新啟動計算機,“開始”選單中的圖示就全部換成了新的圖示。

  提示:圖示可以直接使用可執行檔案中的圖示。例如“explorer.exe,3”,表示使用explorer.exe檔案中的第4個圖示。

  2.增加和刪除“開始”選單中的專案

  一般情況下,“開始”選單中有“程式”、“文件”、“設定”、“搜尋”、“幫助”、“執行”和“關機”這幾項。透過修改登錄檔,我們可以將一些不常用的項從“開始”選單中刪除。如果有特殊的目的,例如網咖中的計算機可能不想讓使用者使用“開始”選單中的“控制皮膚”來隨意改變計算機的設定,也可以使用此方法。

  下表中的值項,都位於登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionPoliciesExplorer中。

  3.增加和刪除桌面的固定專案(適用範圍:Windows 9x/Me/NT/2000/XP)

  一般情況下,桌面上都有“我的電腦”、“網路上的芳鄰”、“回收站”、“我的文件”等。透過修改登錄檔,我們可以不讓這些專案顯示在桌面上。這對於不希望使用者胡亂操作的場合是有用處的。例如對於網咖中的計算機,就可以將全部的桌面專案隱藏起來,以防止使用者透過“我的電腦”和“網路上的芳鄰”等來檢視計算機中的檔案。

  首先我們需要知道Windows中一些特殊專案(如我的電腦)對應的CLSID。見下表。

  為了去除某個特殊項,可以進入到登錄檔項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesNonEnum中,新建一個以該特殊項的CLSID為名稱的雙位元組值項,修改其值為1。建立完值項後,重新啟動桌面使改動生效,桌面上特殊項就會不見了。

  除了上面介紹的方法,某些特殊項還有別的方式可以去除:

  (1)不顯示“網路上的芳鄰”圖示

  不在桌面上顯示“網路上的芳鄰”圖示,可以新建一個雙位元組值項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesExplorerNoNetHood,修改其值為1。

  (2)不顯示“Internet Explorer”圖示

  不在桌面上顯示“Internet Explorer”圖示,可以新建一個雙位元組值項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesExplorerNoInternetIcon,修改其值為1。

  (3)不在顯示“鄰近的計算機”圖示(適用於Windows Me/2000/XP)

  不在“網路上的芳鄰”中顯示“鄰近的計算機”圖示,可以新建一個雙位元組值項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesExplorerNoComputersNearMe,修改其值為1。

  (4)不顯示“整個網路”圖示(適用於Windows Me/2000/XP)

  不在“網路上的芳鄰”中顯示“整個網路”圖示,可以新建一個雙位元組值項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesNetworkNoEntireNetwork,修改其值為1。

  4.修改桌面專案的圖示和提示資訊(適用範圍:Windows 9x/Me/NT/2000/XP)

  從Windows98開始,使用者就可以修改“我的電腦”等專案的圖示。但是,Internet Explorer項,以及其他特殊性的圖示,Windows沒有提供修改的方法。透過登錄檔,我們不但可以修改這些專案的圖示,還可以修改它們的提示資訊。

  和上面一樣,在修改前,我們首先需要知道這些特殊性的CLSID。

  例如我們將“網路上的芳鄰”的圖示修改成Explorer,4,並且將其提示資訊從“顯示網路上的計算機”改變為“此計算機網路由本人維護!!!”,那麼需要進行一下的修改:

  首先取得“網路上的芳鄰”項的CLSID: {208D2C60-3AEA-1069-A2D7-08002B30309D}。

  進入到登錄檔項HKEY_CLASSES_ROOTCLSID{208D2C60-3AEA-1069-A2D7-08002B30309D}中。

  在字串值項“DefaultIcon”中,存放了“網路上的芳鄰”的圖示。在字串“InfoTip”中,存放了“網路上的芳鄰”的提示資訊。修改這兩個值項的值為欲修改為的值。

  這樣,“網路上的芳鄰”的圖示和提示資訊就都被修改了。同理,我們可以修改其他的特殊項。

  5.定製資源管理器的模樣

  透過登錄檔,我們還可以定製Windows中的資源管理器。我們可以讓Windows ME/2000的資源管理器的介面和Windows98中的類似,或者禁止使用者在資源管理器中建立新的資料夾。

  下表中的值項位於登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionPoliciesExplorer中。

  下表中的值項位於登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionPoliciesComdlg32中。

  6.定製Internet Explorer(適用範圍:Windows 9x/Me/NT/2000/XP)

  從Windows 95 OSR2到目前最新的Windows XP,所有的Windows版本都捆綁了Internet Explorer。一般地,Internet Explorer的差別只在於其版本上,而和Windows的版本沒有太大的關係。最新的Windows XP捆綁的是IE6.0。

  (1)我的Internet Explorer

  在IE瀏覽器視窗的標題欄中,顯示的格式是“WEB頁面標題+IE瀏覽器標題”。其中IE瀏覽器的標題字串是“Microsoft Internet Explorer”。透過修改登錄檔,可以更換IE瀏覽器標題欄的字串。

  新建一個字串值項HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer MainWindow Title(注意有空格),修改其值為你喜歡的文字,例如修改為“我的瀏覽器”,重新啟動IE瀏覽器,在IE瀏覽器視窗的標題欄中,顯示資訊更改成了“我的瀏覽器”。

  (2)給工具欄選個漂亮的背景

  一般情況下IE瀏覽器的工具欄是沒有背景圖案的,透過登錄檔我們可以給它加上背景圖案。

  新建一個字串值項HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerToolBarBackBitmap(或者是BackBitmapIE5),修改其值為某個BMP檔案的路徑。重新啟動IE瀏覽器後,IE瀏覽器的工具欄就有了背景圖案了。

  提示:IE 3.0和IE 4.0只能使用BackBitmap值項,IE 5.0和IE 6.0可以使用BackBitmap和BackBitmapIE5。如果同時設定了,則值項BackBitmapIE5的定義優先。

  (3)自定義Internet Explorer的選單顯示(適用於IE5以上)

  透過修改登錄檔,我們還可以自定義Internet Explorer的選單顯示。例如,透過去除掉“檢視”選單中的“原始檔”項,以及禁止Internet Explorer中的右鍵選單,使用者就無法檢視正在瀏覽的Web頁面的原始碼了。

  下表的值項位於登錄檔項HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternet ExplorerRestrictions中。預設情況下,這些值項都不存在。

  三、加強Windows系統安全

  1.保護個人資訊6.檢查Windows啟動時的程式(適用範圍:Windows 2000/XP)

  2.限制使用者執行的程式(適用範圍:Windows 9x/Me/NT/2000/XP)7.禁止舊版本的"自動執行"程式列表(適用範圍:Windows 2000/XP)

  3.限制使用者可以檢視的資源(適用範圍:Windows 9x/Me/NT/2000/XP)8.禁止遠端訪問光碟和軟盤(適用範圍:Windows NT/2000/XP)

  4.限制使用者使用控制皮膚(適用範圍:Windows 9x/Me/NT/2000/XP)9.設定口令的最小長度(適用範圍:Windows 9x/Me/NT/2000/XP)

  5.防範駭客攻擊(適用範圍:Windows 9x/Me/NT/2000/XP)

  在目前這個病毒氾濫,“駭客橫行”的網路時代,我們必須有備無患,加強計算機系統的安全。而登錄檔作為Windows作業系統的核心部分,往往成為病毒和駭客利用的工具。如果使用者缺乏登錄檔的相關知識,將無法找到病毒的“發源地”,而無法將之清除。另一方面,登錄檔也起著積極的作用。透過登錄檔,我們可以進一步加強Windows系統的安全,防止各種非授權的使用,以防止病毒和駭客的入侵。

  1.保護個人資訊

  如果你是和別人合用一臺計算機,或者你有比較私人的內容需要保護,那麼你可以透過登錄檔來加強對這些私人資訊的保護。

  (1)清除本機訪問資訊

  一般情況下,Windows為了方便使用者,總是將使用者最近訪問過的文件、執行過的程式等資訊儲存下來,我們需要去除掉Windows提供的這種方便。

  下表中的值項,位於登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesExplorer中。

  (2)清除操作資訊

  在我們使用Windows作業系統的過程中,很多操作內容都被存放到了登錄檔中。例如透過“開始”選單的“執行”項執行過的程式名稱、訪問過“網路上的芳鄰”中的計算機、訪問過計算機上的資料夾等。透過登錄檔,我們可以手工清除這些資訊。

  (3)加密個人資料夾

  上面討論的都是清除使用者適用計算機時留下的資訊。下面我們利用登錄檔知識,來加密我們的存放了個人資訊的資料夾。

  我們知道,如果想隱藏你的資料夾,透過將資料夾的屬性設定為“隱藏”是沒有用的。使用者只需要在資源管理器的“工具”→“資料夾選項”→“檢視”對話方塊中,選擇“顯示所有的檔案和資料夾”項,就可以看到所有隱藏屬性的資料夾和檔案。有一個小技巧,可以有效的保護你的資料夾。這個技巧就是,用類識別符號作為資料夾名的副檔名。例如我們想保護資料夾C:mydata。

  首先在登錄檔項HKEY_CLASSES_ROOT中找到某個檔案型別的CLSID,如MIDI檔案的CLSID是{00022603-0000-0000-C000-000000000046}。將資料夾mydata的名稱加上{00022603-0000-0000-C000-000000000046}這個副檔名,即將C:mydata的名稱修改為“C:mydata.{00022603-0000-0000-C000-000000000046}”。這時C:mydata的圖示就從資料夾的圖示變成了MIDI檔案的圖示。

  在資源管理器中雙擊該圖示,系統會報告該MIDI檔案內容錯誤,無法播放(系統將資料夾當作MIDI檔案處理了),因此使用者無法進入C:mydata,也就無法檢視該資料夾下的內容。這樣做的好處是,我們可以成功的將我們的私人資料夾偽裝成一個普通的MIDI檔案。

  惟一能夠檢視資料夾內容的方法是:在DOS視窗中,使用CD命令進入到該資料夾。

  你可能會說,使用者只要將該資料夾的副檔名去除,不就可以將保護的資料夾恢復出來了嗎?不用擔心,使用者做不到這一步。即使使用者在資源管理器的“工具”→“資料夾選項”→“檢視”對話方塊中,去除對“隱藏已知檔案型別的副檔名”選項的選擇,使所有的檔案都顯示出副檔名。在資源管理器中,C:mydata也不會出現副檔名。這樣,使用者就無法去除或者更改C:mydata. {00022603-0000-0000-C000-000000000046}的CLSID部分。

  如果想在資源管理器中正常地檢視該資料夾裡的內容,可以在DOS視窗中,將該資料夾重新改名為正確的名稱。

  該方法結合下面的限制執行程式的方法(限制執行DOS視窗),可以很有效的保護你的資料夾。

  2.限制使用者執行的程式(適用範圍:Windows 9x/Me/NT/2000/XP)

  (1)禁止使用者透過“執行”來執行應用程式

  透過“開始”選單的“執行”,使用者可以輸入命令來啟動某個程式。對於那些不是EXE為副檔名的程式,也可以直接執行。如果不希望使用者隨意執行程式,可以將“開始”選單中的“執行”項去除。

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesExplorer中,新建一個雙位元組值項NoRun,修改其值為1。

  提示:除了“執行”外,可以在DOS視窗中手工輸入命令來啟動某個程式。

  (2)禁止使用者執行命令直譯器和批處理檔案(適用於Windows NT/2000/XP)

  透過修改登錄檔,可以禁止使用者使用命令直譯器(CMD.exe)和執行批處理檔案(BAT檔案)。

  進入到登錄檔項HKEY_CURRENT_USERSoftwarePolicies MicrosoftWindowsSystem中,新建一個雙位元組值項DisableCMD,修改其值為2。則命令直譯器和批處理檔案都不能夠被執行。如果只是禁止命令直譯器的執行,而執行批處理檔案的執行,則修改DisableCMD的值為1。

  (3)禁止執行指定的程式

  為了安全性起見,我們可能希望有些帶有危險性的程式不讓使用者去執行。這可以透過登錄檔來實現。例如我們想禁止使用者執行記事本(notepad.exe)和計算器(cal.Exe)。

  首先在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesExplorer中,新建一個雙位元組值項DisallowRun,修改其值為1,以允許我們定義禁止允許的程式,然後新建一個登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesExplorerDisallowRun,在其下新建兩個字串值項。第一個值項的名稱為1,值為notepad.exe,第二個值項為2,值為calc.exe。如果想禁止更多的程式,可以依次建立名稱為3、4等順序往下排列的值項。修改登錄檔後立即生效。這時想透過“開始”選單執行記事本和計算器程式,系統會提示不能進行此操作。

  注意:使用者在Windows NT/2000/XP的命令直譯器(CMD.exe)視窗中,仍然可以透過輸入“notepad.exe”執行記事本。這是因為DisallowRun禁止的只是透過資源管理器Explorer執行的程式,記事本不是透過Explorer啟動的,所以就無法禁止了。如果不希望使用者可以透過命令直譯器執行程式,應該在DisallowRun中將命令直譯器(CMD.exe)禁止。另外,此方式還有一個不安全之處,就是如果使用者將記事本程式“notepad.exe”更改名稱,如改成“note.exe”,使用者就可以執行它了。

  (4)只允許執行指定的程式

  為了限制使用者執行程式,我們可以指定使用者只能執行某些必須的程式。這種方式可以避免使用者執行自己攜帶來的程式,有效地防範病毒地傳播。這可以透過登錄檔來實現。

  首先在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesExplorer下新建一個雙位元組值項RestrictRun ,修改其值為1,以允許我們指定可以執行的程式。

  然後新建一個登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRestrictRun,在其下新建兩個字串值項。第一個值項的名稱為1,值為notepad.exe,第二個值項為2,值為calc.exe。如果想允許更多的程式,可以依次建立名稱為3、4等順序往下排列的值項。修改登錄檔後立即生效。這時想透過“開始”選單和資源管理器執行其他的程式,系統會提示不能進行此操作。

  提示:如果你沒有允許登錄檔編輯器執行,你會發現你將無法恢復此方法所做的修改,因為無法用登錄檔編輯器來修改登錄檔了。在這種情況下,你可以將登錄檔編輯器程式的名稱改變為你允許執行的某個程式的名稱,這樣你就可以執行起來登錄檔編輯器了。

  注意:由於此方法的限制性非常大,所以請小心使用,尤其是避免沒有允許任何程式執行這種情況。如果出現了這種情況,你將無法將此方法做的設定改變回來,因為你無法修改登錄檔。惟一的方法就是恢復修改前的登錄檔備份。

  (5)禁止使用登錄檔編輯器

  登錄檔是複雜和危險的,所以我們往往希望使用者不要嘗試著去修改登錄檔。透過修改登錄檔,我們可以禁止使用者執行系統提供的兩個登錄檔編輯器,Regedit.exe和Regedt32.exe。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesSystem下新建一個雙位元組值項DisableRegistryTools,修改其值為1。這樣,使用者就不能啟動登錄檔編輯器了。

  注意:使用此功能要小心,最好作個登錄檔備份,或者準備一個其他的登錄檔修改工具。因為你在禁止了登錄檔編輯器後,就不能再使用該登錄檔編輯器將值項改回了。

  (6)禁止使用者更改口令(適用於Windows NT/200/XP)

  使用者在“Windows安全視窗”中(同時按下Ctrl+Alt+Delete鍵),可以單擊“更改密碼”來更改使用者口令。透過修改登錄檔,可以禁止使用者更改口令。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesSystem下新建一個雙位元組值項DisableChangePassword,修改其值為1。這樣,“Windows安全視窗”中的“更改密碼”按鈕變成了灰色不可選狀態,使用者無法更改口令。

  (7)禁止使用者鎖定計算機(適用於Windows NT/2000/XP)

  使用者在“Windows安全視窗”中,可以單擊“鎖定計算機”來鎖定計算機。透過修改登錄檔,可以禁止使用者鎖定計算機。

  在登錄檔HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesSystem中新建一個雙位元組值項DisableLockWorkstation,修改其值為1。這樣,“Windows安全視窗”中的“鎖定計算機”按鈕變成了灰色不可選狀態,使用者無法鎖定計算機。

  (8)禁止使用者使用工作管理員(適用於Windows NT/2000/XP)

  使用者可以使用“Windows工作管理員”(Taskmgr.exe)來啟動和結束本地程式、檢視和管理其他計算機上的程式、改變程式的優先順序。透過修改登錄檔,可以禁止使用者使用工作管理員。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesSystem下新建一個雙位元組值項DisableTaskMgr,修改其值為1。這樣,使用者就無法啟動工作管理員了。

  3.限制使用者可以檢視的資源(適用範圍:Windows 9x/Me/NT/2000/XP)

  (1)隱藏指定的磁碟驅動器

  如果我們不希望使用者檢視某個驅動器的內容,可以在“我的電腦”和資源管理器中將該驅動器的圖示隱藏起來。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer中新建一個雙位元組值項NoDrives。

  該值項共使用了從最低位(第0位)到第25位,共26個字位,分別代表驅動器A到驅動器Z。如果第0位為1,表示不顯示驅動器A的圖示,第3位為1,表示不顯示驅動器D的圖示,依此類推。例如我們想“我的電腦”中不顯示任何驅動器的圖示,可以修改“NoDrives”的值為“03ffffff”(第0位到31位全部為1)。修改後重啟桌面使改動生效。

  修改後,不只是“我的電腦”,還包括“網路上的芳鄰”、資源管理器,任何標準的“開啟”、“儲存”檔案的對話方塊,都不會出現指定驅動器的圖示。雖然這些驅動器的圖示不能出現,但是使用者仍然可以訪問這些驅動器。例如可以在資源管理器的位址列中輸入驅動器號,或者在DOS視窗中使用命令檢視隱藏了的驅動器。

  (2)禁止使用者檢視指定磁碟驅動器的內容

  如果有一個驅動器中存放了重要的資料,我們不希望使用者檢視該驅動器的內容,可以使用此方法來禁止檢視該驅動器的內容。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer中新建一個雙位元組值項NoViewOnDrive。該值項共使用了從最低位(第0位)到第25位,共26個字位,分別代表驅動器A到驅動器Z。如果第0位為1,表示禁止使用驅動器A,第3位為1,表示禁止使用驅動器D,依此類推。例如我們想禁止使用者使用軟盤驅動器A和B,以及驅動器D,可以修改“NoViewOnDrive”的值為“0000000b”(第0、1、3位的值為1)。修改後需要重啟桌面使改動生效。

  這時再進入到“我的電腦”,雙擊驅動器D,系統會彈出一個訊息框,告訴使用者不能進行此操作。不只是“我的電腦”,還包括“網路上的芳鄰”、資源管理器,任何標準的“開啟”、“儲存”檔案的對話方塊,都不能對已經禁止的驅動器進行操作,雖然在“我的電腦”和資源管理器中,驅動器D的圖示仍然存在。

  提示:該方法只是禁止使用者在“我的電腦”和資源管理器中訪問受限制的驅動器,應用程式仍然可以訪問被禁止的驅動器。

  (3)登入時不顯示上次使用者的使用者名稱(適用於Windows NT/2000/XP)

  預設情況下,在使用者註冊登入時,在使用者名稱欄中顯示著上次使用者的使用者名稱。透過修改登錄檔,我們可以禁止系統顯示上次使用者的使用者名稱,以加強安全性。

  在登錄檔項HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindows NTCurrentVersionWinlogon中新建一個雙位元組值項DontDisplayLastUserName,修改其值為1。重新啟動機器後,在使用者註冊畫面中,不會顯示上次使用者的使用者名稱。

  4.限制使用者使用控制皮膚(適用範圍:Windows 9x/Me/NT/2000/XP)

  控制皮膚提供給使用者一個直觀的介面來更改Windows的部分引數,使Windows的介面和功能更符合自己的需要。不恰當的使用控制皮膚,會帶來一些問題

  (1)禁用整個控制皮膚

  在登錄檔項項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrentVersionPoliciesExplorer中新建一個雙位元組值項NoControlPanel。值為1表示禁止控制皮膚的使用,值為0或者值項不存在表示允許使用者使用控制皮膚。

  重啟桌面使改動生效後,可以看到,“開始”選單中“設定”中的“控制皮膚”項不見了,並且如圖試圖用別的方式訪問“控制皮膚”中的專案,例如在桌面上單擊滑鼠右鍵來訪問“顯示”,系統會彈出一個訊息框,提示使用者不能進行此操作。

  (2)去除“控制皮膚”中的指定專案(適用於Windows 2000/XP)

  有時候我們想去除掉“控制皮膚”中的某些專案,以防止使用者使用它們來進行設定,但是又想允許使用者使用“控制皮膚”中的另外一些專案,這也是可以做到的。

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionPoliciesExplorer中新建一個雙位元組值項DisallowCpl,並修改其值為1。然後新建一個登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerDisallowCpl,在該項下新建若干個字串值項,形式為“序號=控制皮膚項對應的檔名”。例如想去除控制皮膚中的“顯示”和“系統”兩項,可以在該項下新建兩個值項“1”和“2”,值分別為“desk.cpl”(顯示項對應的檔案)和sysdm.cpl(系統項對應的檔案)。重啟桌面使改動生效。這時再進入到“控制皮膚”中,可以看到,“顯示”項和“系統”項已經不見了。

  (3)指定“控制皮膚”中顯示的專案(適用於Windows 2000/XP)

  如果我們想去除掉“控制皮膚”中的大部分專案,只允許使用者使用幾個專案,則可以使用本方法。“控制皮膚”中只顯示使用者指定的專案,對於沒有指定的專案則不顯示。

  在登錄檔項HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrent VersionPoliciesExplore中新建一個雙位元組值項RestrictCpl,修改其值為1,然後新建一個登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExploreRestrictCpl,在該項下新建若干個字串(REG_SZ)值項,形式為“序號=控制皮膚項對應的檔名”。例如只允許使用者使用控制皮膚中的“顯示”和“系統”兩項,可以在該項下新建兩個值項“1”和“2”,值分別為“desk.cpl”(顯示項對應的檔案)和sysdm.cpl(系統項對應的檔案)。重啟桌面使改動生效。這時再進入到“控制皮膚”中,可以看到,整個控制皮膚中只有“顯示”項和“系統”項。

  注意:使用去除控制皮膚中的指定專案和指定控制皮膚中顯示的專案都可以定製控制皮膚中專案的顯示,但是這兩個方法有可能發生衝突。如果發生衝突,則去除控制皮膚中的指定專案方法優先。

  (4)去除“系統”中的“裝置管理”標籤(適用於Windows 9x/Me)

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem中,新建一個雙位元組的值項NoDevMgrPage,修改其值為1。這時再進入到“控制皮膚”中的“系統”項,可以看到“裝置管理”標籤已經不見了。

  (5)去除“系統”中的“硬體配置”標籤(適用於Windows 9x/Me)

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下,新建一個雙位元組的值項NoConfigPage,修改其值為1。這時再進入到“控制皮膚”中的“系統”項,可以看到“硬體配置”標籤已經不見了。

  (6)去除“系統”中的“效能”標籤裡的“檔案系統”按鈕(適用於Windows 9x/Me)

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下,新建一個雙位元組的值項NoFileSysPage,修改其值為1。這時再進入到“控制皮膚”中的“效能”項,可以看到“效能”標籤中的“檔案系統”按鈕已經不見了。

  (7)去除“系統”中的“效能”標籤裡的“虛擬記憶體”按鈕(適用於Windows 9x/Me)

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下,新建一個雙位元組的值項NoVirtMemPage,修改其值為1。這時再進入到“控制皮膚”中的“效能”項,可以看到“效能”標籤中的“虛擬記憶體”按鈕已經不見了。

  (8)禁用“顯示”項

  我們可以禁止使用“控制皮膚”中的顯示項。雖然“顯示”項仍然出現在“控制皮膚”中,但是使用者不能使用。在登錄檔項HKEY_CURRENT_USER SoftwareMicrosoftWindowsCurrent VersionPoliciesSystem中新建一個雙位元組值項NoDispCPL,修改其值為1。這時進入“控制皮膚”,雙擊“顯示”項,系統會出現一個訊息框提示使用者不可以進行此操作。

  (9)去除“顯示”項中的“背景”標籤

  在登錄檔項HKEY_ CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciessystem中新建一個雙位元組值項NoDispBackgr oundPage,修改其值為1。

  (10)禁止“顯示”項裡的“背景”標籤(適用於Windows 2000/XP)

  在登錄檔項HKEY_ CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesActiveDesktop中新建一個雙位元組值項NoChangingWallPaper,修改其值為1。

  (11)去除“顯示”項中的“螢幕保護程式”標籤

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciessystem中新建一個雙位元組值項NoDispScrSavPage,修改其值為1。

  (12)決定螢幕保護程式是否使用密碼保護(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwarePolicies MicrosoftWindowsControl PanelDesktop中新建一個雙位元組值項ScreenSaverIsSecure,修改其值為1。

  (13)去除“顯示”項中的“外觀”標籤

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciessystem中新建一個雙位元組值項NoDispAppearancePage,修改其值為1。

  (14)去除“顯示”項中的“設定”標籤

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciessystem中新建一個雙位元組值項NoDispSettingsPage,修改其值為1。

  (15)禁止刪除印表機

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesExplorer中新建一個雙位元組值項NoDeletePrinter,修改其值為1。

  (16)去除“印表機”中的“新增印表機”項

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesExplorer中新建一個雙位元組值項NoAddPrinter”,修改其值為1。

  (17)禁止“新增印表機嚮導”中的“瀏覽網路印表機”項(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwarePolicies MicrosoftWindows NTPrintersWizard中新建一個雙位元組值項Downlevel Browse,修改其值為1。

  如果使用者想新增網路印表機,只能輸入網路印表機的URL。

  (18)去除“新增/刪除”項(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesUninstall中新建一個字串值項NoAddRemovePrograms,修改其值為1。

  (19)去除“新增/刪除”項中的“更改或刪除程式”項(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesUninstall中新建一個雙位元組值項NoRemovePage,修改其值為1。

  (20)去除“新增/刪除”項中的“新增新程式”項(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesUninstall中新建一個雙位元組值項NoAddPage,修改其值為1。

  (21)去除“新增/刪除”項中的“新增/刪除Windows元件”項(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesUninstall中新建一個雙位元組值項NoWindowsSetupPage,修改其值為1。

  (22)去除“新增/刪除”專案中“新增新程式”中的“從光碟或軟盤新增程式”(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesUninstall中新建一個雙位元組值項NoAddFromCDor Floppy,修改其值為1。

  (23)去除“新增/刪除”專案中“新增新程式”中的“從Microsoft新增程式”(適用於Windows 2000/XP)

  在登錄檔項HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrent VersionPoliciesUninstall中新建一個雙位元組值項NoAddFromInternet,修改其值為1。

  5.防範駭客攻擊(適用範圍:Windows 9x/Me/NT/2000/XP)

  登錄檔中有些引數,設定合適的話可以防範一些駭客技術的攻擊。DoS(拒絕服務)攻擊是一種常見的駭客攻擊方式,其中SYN淹沒攻擊是DoS中比較常見的。我們在這裡給出一個防範SYN攻擊的設定方法。

  (1)減小等待SYN-ACK包的時間

  TCP在傳送SYN-ACK包後,首先等待3秒鐘,如果仍然沒有回應,則將時間加大一倍,從3秒增大到6秒,再重發一次SYN-ACK,然後繼續等待回應。重發的次數定義在登錄檔中的一個雙位元組值項TcpMaxConnectResponseRetransmissions 裡,該值項位於登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTcpipParameters中。預設值為3,表示重發次數為3次,先等待3秒後傳送一次,然後等待6秒後傳送一次,然後等待12秒傳送一次,最後等待24秒,如果仍然接收不到回應,不再繼續傳送SYN-ACK,而是清除此次連線,並釋放所有資源。這樣總共經過了45秒鐘。值為2表示重發次數為2次,總共的耗費時間為21秒,值為1表示重發次數為1次,總共的耗費時間為9秒。0表示不重發SYN-ACK,耗費時間為3秒。耗費時間越短,SYN攻擊造成的影響就相應的要小一些。此值項的預設值為3次。如果系統容易受到SYN淹沒攻擊,可以將此值項修改為2。

  (2)增大NetBT的連線塊增加幅度和最大數目

  NetBT(基於TCP/IP的NetBIOS)使用139號TCP埠,一般用在微軟網路中,例如檔案和列印服務。在建立連線時,如果BetBT發現可用的連線塊數目小於2個,會自動的再分配可用連線塊。

  NetBT每次增加的連線塊的數目定義在登錄檔中的雙位元組值項BacklogIncrement中,該值項位於登錄檔項登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesNetBtParameters下。預設值為3,最小值為1,最大值位20。增大此值可以在有眾多連線時提升效能。每個連線塊消耗87個位元組。

  NetBT最多可以使用的連線塊的數目定義在登錄檔項中雙位元組值項MaxConnBackLog中,預設為1000個,最大值可以取到40000個。可以適當的增大此引數的值以允許更多的同時連線。

  (3)配置動態Bakclog(適用於Windows NT/2000/XP)

  對於使用Sockets的Windows服務,如FTP,可以透過配置動態Backlog來提升在網路繁忙時的效能。使用動態Bakclog,系統會預先分配一定的資源用於建立連線,這樣就省去了給連線分配資源的時間和CPU消耗。如果需要再增加資源,可以一次性的增加若干個連線所需的資源空間。

  在登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAFDParameters中新建下面的雙位元組值項:

  EnableDynamicBacklog,該值項的預設值為0,表示是否允許動態Backlog。預設值為0。對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為1,表示允許動態Backlog。

  MinimumDynamicBacklog,該值項的預設值為0,表示動態Backlog分配的自由連線的最小數目。當自由連線數目低於此數目時,將自動的分配自由連線。預設值為0,對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為20。

  MaximumDynamicBacklog,該值項的預設值為0,表示定義最大"準"連線的數目。"準"連線包括自由連線和半連線。對於網路繁忙或者易遭受SYN攻擊的系統,應該設定此值,大小取決於記憶體的多少。一般來說,每32M記憶體最大可以增加5000個。

  DynamicBacklogGrowthDelta,該值項的預設值為5,表示定義每次增加的自由連線數目。對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為10。

  (4)啟用SYN淹沒攻擊保護特性(適用於Windows 2000/XP)

  Windows 2000/XP針對SYN淹沒攻擊提供了一個叫做SYN淹沒攻擊保護的特性。當出現了SYN淹沒攻擊的徵兆時,Windows 2000/XP自動降低對那些無法確認的連線請求的響應時間。

  在登錄檔項HKLMSYSTEMCurrentControlSetServicesTcpipParameters中新建下面的雙位元組值項:

  SynAttackProtect,該值項的預設值為0,表示定義是否允許SYN淹沒攻擊保護特性。保證該值為1,表示允許啟用SYN淹沒攻擊保護特性。

  TcpMaxConnectResponseRetransmissions,該值項的預設值為3,表示定義了對於連線請求回應包的重發次數。如果該值為1,則SYN淹沒攻擊不會有效果,但是這樣會造成連線請求失敗機率的升高。SYN淹沒保護特性只有在該值大小大於或等於2時才會被啟用。該值的預設值為3。

  以上兩個值項定義了是否允許SYN淹沒攻擊保護。下面三個值項則定義了啟用SYN淹沒攻擊保護特性的條件。當滿足下面三個值項定義的條件之一時,系統會自動啟用SYN淹沒攻擊保護。

  TcpMaxHalfOpen,該值項的預設值為100或者500,表示定義了能夠處於SYN_RECEIVED狀態的TCP連線的數目。由於SYN淹沒攻擊通常會造成大量的SYN_RECEIVED狀態的TCP連線,因此保護特性將該值作為SYN淹沒攻擊發生的一個徵兆。當處於SYN_RECEIVED狀態的TCP連線的數目超過該值項的定義時,系統認為SYN淹沒攻擊發生了,自動啟用保護特性。

  對於Windows 2000 Server,該值項預設值為100。對於Windows 2000 Professional,該值項預設值為500。Professional之所以比Server的值高,是因為Professional通常不用作伺服器,也就不會受到SYN淹沒攻擊。

  TcpMaxHalfOpenRetried,該值項的預設值為80或者40,表示定義了在重新傳送連線請求後,仍然處於SYN_RECEIVED狀態的TCP連線的數目。當這種狀態的TCP連線的數目超過該值項的定義時,系統認為SYN淹沒攻擊發生了,自動啟用保護特性。

  對於Windows 2000 Server,該值項預設值為80。對於Windows 2000 Professional,該值項預設值為400。

  TcpMaxPortsExhausted,該值項的預設值為5,表示定義了系統拒絕連線請求的次數。當系統保留的連線埠都被使用掉時,系統將拒絕所有的連線請求。SYN淹沒攻擊通常會發生這種情況,因此保護特性將該值作為SYN淹沒攻擊發生的一個徵兆。當被拒絕的連線請求的數目超過該值項的定義時,系統認為SYN淹沒攻擊發生了,自動啟用保護特性。

  6.檢查Windows啟動時的程式(適用範圍:Windows 2000/XP)

  在Windows環境下,由於病毒必須獲得CPU的控制權,因此很多病毒都需要在Windows啟動後,自動地執行起來。另一方面,越來越多的病毒採用了高階語言的形式,象宏病毒,採用的是VB語言,本身不能直接由CPU來執行,必須由相關程式解釋執行,因此它們必須在作業系統正常啟動後,才能載入自身,進行病毒傳播。因此說,很多病毒必須在Windows啟動後自動地執行起來,並且是依賴於Windows的自動啟動程式的功能。這是這些病毒的一個特點,也是一大弱點。我們可以根據這個特點,分析Windows啟動時有那些程式自動執行,透過檢查這些程式來防範病毒的侵襲。

  (1)登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices

  該項下存放了Windows NT/2000/XP的服務程式。下面的每一個子項對應於一個服務:

  ImagePath值項存放了該服務的程式檔案路徑。這些服務都有一個Start值項。值為0,表示由核心裝載器裝載;值為1,表示由I/O子系統裝載。Start值為0和1的,都是非常低階和關鍵的Windows服務,它們必須正常啟動,Windows NT/2000/XP才能繼續啟動。通常病毒不會將自己放在這裡面,因為這時候WindowsNT/2000/XP只裝載了核心部分,只有最基本的功能。Start值為2,表示自動啟動,值為3,表示手工啟動,值為4,表示禁止啟動。這三類服務,可以在"控制皮膚"→"管理工具"→"服務"中檢視到。

  我們需要檢查的是,那些Start值為2的服務,其對應的程式檔案(ImagePath值項定義)是否可疑。

  (2)登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlSession Manager

  該項下存放了會話管理器(Smss.exe)的資訊。在Windows NT/2000/XP的核心啟動階段,需要啟動該項下定義的幾個程式。在REG_MULTI_SZ型別的值項BootExecute中,定義了會話管理器裝載服務前需要執行的程式。預設值為AutoCheck autochk *和Dfsinit。該預設值表示執行磁碟檢查程式,以及啟動DFS檔案系統的初始化程式。

  我們需要檢查的是,值項BootExecute存放的是否是預設的執行檔案,是否還定義了其他的執行程式。

  (3)登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionWinlogonUserinit

  該值項型別為字串值,定義了使用者註冊進入時執行的初始化程式。在使用者註冊時,註冊管理程式(Winlogon)啟動該初始化程式,預設值是Userinit.exe。該程式首先執行註冊指令碼,建立網路連線,然後啟動使用者介面程式(Explorer.exe)。使用者可以替換該初始化程式為自己的初始化程式(當然,病毒也可以做到)。一般地,使用者自己的初始化程式可以在處理完自己需要進行的工作後,再呼叫Userinit.exe程式即可。

  我們需要檢查的是,Userinit值項的值是否是Userinit.exe。同時檢查WinntSystem32下的Userinit.exe檔案的大小和時間是否是正常的。

  (4)登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionWinlogonShell

  該值項型別為字串值,定義了使用者介面程式,預設值為Explorer.exe。正常情況下,註冊管理程式(Winlogon)啟動Userinit定義的初始化程式,該初始化程式會啟動使用者介面程式,因此不需要執行Shell值項定義的程式。如果註冊管理程式沒有能成功啟動Userinit定義的初始化程式,則註冊管理程式會過來啟動該Shell值項定義的使用者介面程式。

  我們需要檢查的是, Shell值項的值是否是Explorer.exe。

  (5)登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionWinlogonSystem(適用於Windows NT)

  該值項型別為字串值,該值項中存放了安全管理器程式,預設值為Lsass.exe。安全管理器就是Windows NT啟動時,或者螢幕保護後,要求輸入使用者和密碼的畫面。使用者可以替換該安全管理器程式。

  我們需要檢查的是System值項的值是否是Lsass.exe。

  (6)登錄檔項HKEY_CURRENT_USERSOFTWAREMicrosoftWindows CurrentVersionPoliciesExplorerRun

  在該項下可以有若干個字串型別的值項,每個值項的名稱從1開始,值為程式或者文件的名稱。在使用者註冊進入Windows時,該項下定義的程式將被啟動起來。例如該項下有兩個值項,第一個是1,值為Notepad.exe,第二個是2,值為C: eadme.doc,則在使用者註冊進入Windows 2000時,系統會首先執行起Notepad.exe程式,然後會使用DOC的關聯程式開啟C: eadme.doc文件。

  我們需要檢查的是,如果定義了自動啟動程式,則查詢該程式是哪個軟體對應的,是否為可疑程式。預設情況下,該登錄檔項下應該為空。

  (7)登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion PoliciesExplorerRun

  該項與HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersion PoliciesExplorerRun的作用一樣,不同之處在於,由於它位於HKEY_LOCAL_MACHINE下,所以它將應用於所有的使用者。在啟動順序上,系統首先啟動HKEY_LOCAL_MACHINE下的Run中的程式,再去啟動HKEY_CURRENT_USER下Run中的程式。

  (8)登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersion下的Run、RunOnce、RunEx和RunOnceEx子項(適用於Windows 9x/Me/NT/2000/XP)

  由於是位於HKEY_CURRENT_USER下,因此該項只適用於當前這個使用者,不適用於其他的使用者。在使用者註冊進入Windows系統時,自動地執行該項下定義的程式或文件。其中Run子項中定義了每次系統啟動時都需要執行的程式,值項型別是字串值,值項的名稱是該執行程式的說明,值項的值是程式的名稱;RunOnce子項中定義了只執行一次的程式,在該項下的值項中定義的程式執行起來後,該項下的值項就會被刪除掉,這通常用於程式的安裝過程;RunEx和RunOnceEx的作用和Run、RunOnce是一樣的,是Run、RunOnce的擴充形式。

  (9)登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoft WindowsCurrentVersion下的Run、RunOnce、RunEx和RunOnceEx子項(適用於Windows 9x/Me/NT/2000/XP)

  該項和HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersion下的Run、RunOnce、RunEx和RunOnceEx作用一樣,不同之處在於,由於它位於HKEY_LOCAL_ MACHINE下,所以它將應用於所有的使用者。在啟動順序上,系統首先啟動HKEY_LOCAL_MACHINE下定義的啟動專案,再去啟動HKEY_CURRENT_USER下定義的啟動專案。

  我們需要檢查的是,對於預設情況以外定義的程式,需要檢查其對應的軟體。很多軟體將自動啟動程式放在登錄檔中的這個位置。例如Norton Antivirus防毒軟體,就會在登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRun下新建一個值項NPS Event Checker,值為C:PROGRA~1Navnt npscheck.exe。

  (10)檢查非登錄檔部分

  首先檢查啟動檔案和磁碟引導扇區。對於Windows 9x/Me,啟動檔案是啟動盤目錄下的IO.sys和Command.com檔案。同時,還包括Autoexec.bat檔案中定義的程式檔案,以及Config.sys檔案中裝載的程式檔案。對於Windows NT/2000/XP,啟動檔案是啟動盤目錄下的Ntldr,Ntdetect.com、Ntbootdd.sys(如果boot.ini檔案使用SCSI語法)、Bootsect.dos(如果使用了多重啟動,對應於啟動到DOS環境),以及Winnt目錄下的Ntoskrnl.exe(核心程式檔案)和Hal.dll(硬體抽象層)。

  其次,對於Windows 9x,還需要檢查Win.ini檔案和System.ini檔案。Win.ini檔案中的"run="和"load="行,定義了Windows 9x啟動時需要裝載的程式。

  最後,需要檢查"開始"選單中"程式"中的"啟動"程式組,"啟動"程式組中存放了Windows正常啟動起來後,需要啟動的程式。

  7.禁止舊版本的"自動執行"程式列表(適用範圍:Windows 2000/XP)

  登錄檔項HKEY_LOCAL_MACHINE_SoftwareMicrosoftWindowsCurrentVersionRun和HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce下存放的是"自動執行"的程式列表,它們是舊版本的"自動執行"程式列表,在Windows95/98/NT中就已經有了。在登錄檔中有兩個值項,可以禁止這兩個舊版本列表起作用,替代它們的是RunEx和RunOnceEx登錄檔項。

  這兩個值項位於登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer下。

  8.禁止遠端訪問光碟和軟盤(適用範圍:Windows NT/2000/XP)

  在C2級別的安全要求中,必須對可移動介質的安全作保護,它要求當本地使用者在使用計算機時,光碟和軟盤稱為本地使用者的專有資源,網路上的其他使用者,包括系統管理員,都不能夠訪問光碟和軟盤。這是因為此時使用的可移動介質,通常是本地使用者私人的,因此不應該給其他人看到。

  下表的值項存放在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon中。

  9.設定口令的最小長度(適用範圍:Windows 9x/Me/NT/2000/XP)

  預設情況下,口令可以設定為空。為了加強安全性,我們可以強行指定口令的最小長度。

  在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesNetwork下,建立二進位制型別的值項MinPwdLen,並修改其值為口令的長度,例如6。這樣,使用者在設定口令時,最少要設定6位的長度。

  四、提升Windows系統效能

  1.定製Windows的登入(適用範圍:Windows 9x/Me/NT/2000/XP)3.定製驅動器的自動播放功能(適用範圍:Windows 9x/Me/NT/2000/XP)

  2.加快撥號上網的速度(適用於Windows 9x)

  透過登錄檔,我們可以定製Windows的功能,使之更加符合我們的習慣和需求。

  1.定製Windows的登入(適用範圍:Windows 9x/Me/NT/2000/XP)

  (1)開機後自動登入

  為了使用Windows NT/2000/XP,我們必須輸入一個使用者名稱稱和使用者口令來登入。在Windows 9x/Me中,如果登入方式設定為"Microsoft網路登入",在進入Windows時,也需要輸入使用者名稱和口令,否則將不能訪問網路上的芳鄰中的計算機。

  為了方便起見,我們可以將使用者名稱和使用者密碼存放到登錄檔中,這樣Windows啟動時,自動使用登錄檔中的使用者名稱和使用者密碼來登入,而不用使用者手工輸入。

  對於Windows NT/2000/XP,在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon下新建值項。對於Windows 9x/Me,在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionWinlogon下新建值項。下表中詳細列出新建的值項。

  (2)在登入前顯示自定義的資訊

  我們可以在Windows啟動之前顯示一些資訊,以給使用者一些提示或是警告。

  對於WindowsNT/2000/XP,在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon下新建值項。對於Windows 9x/Me,在登錄檔項HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionWinlogon下新建值項。下表中詳細列出新建的值項。

  (3)必須使用有效使用者註冊(適用於Windows 98)

  在Windows 98中,當出現輸入使用者名稱稱和密碼的畫面時,可以單擊"取消"按鈕,或者按下ESC鍵,跳過這一步直接進入到Windows中。透過修改登錄檔,可以禁止這種未授權的使用,而要求只有在Windows98中設定的使用者才可以進入。

  在登錄檔項HKEY_LOCAL_MACHINENetworkLogon下,新建一個雙位元組字值項MustBeValidated,修改其值為1。這樣,在下次啟動時,必須輸入有效的使用者名稱和使用者密碼才可以進入到Windows 98中。

  注意:在Windows 98 SE中,該修改方式不適用。如果設定了該選項,Windows 98 SE將從域伺服器上去驗證該使用者,因為找不到域伺服器,因此無法正常登入到Windows 98 SE中。

  (4)啟動時不要求輸入口令(適用於Windows 9x/Me)

  Windows 9x/Me啟動時往往要求輸入使用者名稱和口令。如果只是自己使用,雖然可以按ESC鍵或者"取消"按鈕跳過這一步,但還是挺麻煩。

  在作此修改前請首先將網路登入方式改為Windows登入:進入控制皮膚中的網路項,將"主網路登入"方式改為Windows登入。

  然後將預設使用者的密碼改為空。將使用者的密碼設定為空可以採用如下方法:

  方法1:透過修改登錄檔來更換使用者名稱

  在Windows 9x/Me中,上次使用者的使用者名稱存放在登錄檔的HKEY_LOCAL_MACHINENetworkLogon下,名稱Username。我們可以將這個使用者名稱修改為一個新的使用者名稱。重新啟動後,Windows會認為該使用者是新的使用者,要求輸入使用者口令。不要輸入口令,直接按"確定"按鈕。這樣,在下次啟動時,就不會要求輸入使用者名稱和口令。

  方法2:刪除口令檔案

  進入到C:windows目錄下。找到該使用者的口令檔案。如使用者名稱稱為lijin,則口令檔案為lijin.pwl。刪除該檔案。重新啟動Windows 9x,Windows 9x會認為該使用者是新的使用者,要求輸入使用者口令。不要輸入口令,直接按"確定"按鈕。這樣,在下次啟動時,就不會要求輸入使用者名稱和口令。

  方法3:註冊新使用者

  首先"開始"選單中選擇"登出",在出現的註冊畫面中,使用新的使用者名稱,並且不輸入口令,直接按"確定"按鈕。Windows會自動生成該使用者的資訊。在下次啟動時,系統會使用新的使用者註冊進入Windows。

  方法4:修改登錄檔禁止使用口令檔案

  登錄檔中的一個值項控制著是否使用口令檔案(PWL檔案)。如果禁止使用口令檔案,則Windows啟動時不會要求輸入口令。在登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionPoliciesNetwork下,新建一個雙位元組值項DisablePwdCaching,修改其值為1。重新啟動Windows後,Windows將不會生成和使用口令檔案。即使使用者設了口令,在Windows啟動時,也不會要求輸入使用者口令。

  提示:如果在登錄檔中修改了此項,禁止了口令檔案,並且登入方式選擇的是"Microsoft網路使用者"或者"Netware網路使用者",在Windows 9x/Me啟動時,仍然會出現要求輸入使用者口令的畫面,不過即使輸入的使用者口令不對,也可以進入Windows,只是不能註冊到"Microsoft網路"或"Netware網路"上。

  方法5:強迫Windows啟動時不進行登入

  預設情況下,只要安裝了網路項,或者Windows口令非空,Windows啟動時會出現登入註冊的畫面,要求使用者進行註冊進入系統。在登錄檔中有一個值項控制著系統啟動時是否進行登入。在登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionNetworkReal Mode Net下,新建一個雙位元組值項autologon。修改其值為0。

  提示:此方法對於Microsoft網路使用者登入、Netware網路登入和Windows登入三種登入方式都適用。

  2.加快撥號上網的速度(適用於Windows 9x)

  (1)去除不需要的協議和服務

  選定一個撥號連線,單擊右鍵,可以看該撥號連線的屬性。通常透過撥號網路建立一個連線後,該連線繫結了NetBEUI和IPX/SPX相容協議,並且聯絡著微軟網路,如果該撥號連線只是為了上因特網,則可以將這些不必要的協議和服務去掉,只保留TCP/IP協議,以加快登入速度和傳輸速度。

  (2)增大串列埠緩衝和通訊速度

  在Windows目錄下找到System.ini檔案並編輯它,在其[386Enh]這一行下面加入"COM2Buffer=1024"行。如果調變解調器不是安裝在串列埠2,而是安裝在串列埠1,則改為"Com1Buffer=1024"即可。

  在Windows目錄下找到Win.ini檔案並編輯它,在其[ports]部分找到"COM2:= 9600,n,8,1,x"行,修改為"COM2:=38400,n,8,1,x"。如果調變解調器不是安裝在串列埠2,而是安裝在串列埠1,則修改"COM1:=9600,n,8,1,x"行為"COM1:=38400,n,8,1,x"。

  (3)增大接收緩衝區

  設定調變解調器的屬性,將其接收緩衝區調到最大。

  (4)增大系統的檔名和路徑的緩衝

  在登錄檔項HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionFS TemplatesDesktop下,新建兩個雙位元組值項。一個是NameCache,定義了存放訪問過的檔名的緩衝,建議從32修改為128。一個是PathCache,定義了存放訪問過的檔案的路徑的緩衝,建議從677修改為4096。

  (5)調整撥號網路介面卡的TCP/IP引數

  首先進入到登錄檔項HKEY_LOCAL_MACHINEEnumRootNet下。在該項下有形式為00xx的子項。進入到各個00xx子項下,查詢值項DeviceDesc是否為"撥號網路介面卡"。如果是,在該子項下還有一個Binding子項,進入該子項,記下該子項下的MSTCP0xx的值。

  按照上一步找到的MSTCP0xx值,進入到登錄檔項HKEY_LOCAL_MACHINEEnumNetworkMSTCP0xx下。記下其下值項Driver的值,形式為NetTrans/00xx。

  按照上一步找到的NetTrans/00xx的值,進入到登錄檔項HKEY_LOCAL_MACHINESystem CurrentControlSetServicesClassNetTrans0xx下。修改REG_SZ值項MaxMTU的值從1500到576,因為1500是針對區域網的,而576是Internet上的標準。修改REG_SZ值項MaxMSS的值為536。

  (6)調整TCP/IP協議的引數

  修改下列值項的值(字串值)。這些值項位於登錄檔項HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下:

  DefaultRcvWindow,其預設值為8129,該值為接收緩衝區的大小,一般等於Modem的傳輸速度。可以按如下演算法計算.假設Modem速度為28.8K,則傳輸率為(不考慮資料壓縮)28800/9=3200。考慮到DefaultRcvWindow應該是MSS(一般值為536)的整數倍,則應該取值為2680。不考慮Modem的資料壓縮,14.4K、28.8K、36.6K和56K應該分別對應於1072、2680、3752、5896。如果考慮到Modem的資料壓縮功能,可以再加大20%~50%,但注意,仍然應該為MSS的整數倍。如果Modem速度快,因特網接入線路質量好,可以再適當的加大該值。預設值為8192。

  DefaultTTL,其預設值為32,該值為資料包可以在因特網上存活的時間。加大該值,有利於在繁忙的網路中保持連線。預設值為32,建議修改為255。

  NameSrvQueryTimeout,其預設值為750,該值為域名伺服器查詢的超時時間。加大該值,有利於連線的建立。預設值為750毫秒。建議修改為3000毫秒。

  3.定製驅動器的自動播放功能(適用範圍:Windows 9x/Me/NT/2000/XP)

  Windows提供了自動播放功能。最常見的就是光碟驅動器的自動播放功能。當我們將一張CD光碟放進光碟驅動器中,CD播放器就會自動執行起來,並開始播放該CD。或者在光碟驅動器中放入一張資料盤,如果該光碟的根目錄下有一個Autorun.inf檔案,這個Autorun.inf檔案中定義的程式也會自動地執行起來。

  (1)禁止光碟驅動器的自動播放功能

  在登錄檔項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom下有一個雙位元組值項AutoRun,修改其值為0,重啟計算機。

  (2)定製各個驅動器的自動播放

  我們可以定製各個驅動器的自動播放。例如允許驅動器E的自動播放功能,而禁止其他驅動器的自動播放功能。

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionPoliciesExplorer下。如果想讓此修改應用到所有的使用者,則應該進入到登錄檔項HKEY_LOCAL_MACHINE SoftwareMicrosoftWindowsCurrent VersionPolicies Explorer下。在該項下新建一個雙位元組值項NoDriveAutoRun。

  該值項的低26位分別代表從A到Z共26個驅動器的自動播放功能。如果該位為1,表示該位對應的驅動器的自動播放功能被禁止,如果該位為0,則該位對應的驅動器的自動播放功能被允許。例如我們只想禁止驅動器C和D的自動播放功能,對於其他驅動器的自動播放功能則想保留,那麼我們需要修改NoDriveAutoRun的值為0x0000000c。修改後需要重新啟動計算機。

  (3)按驅動器的型別進行定製

  除了按照驅動器磁碟機代號來定製外,我們可以按照驅動器的型別來定製各個驅動器的自動播放。

  進入到登錄檔項HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionPoliciesExplorer下。如果想讓此修改應用到所有的使用者,則應該進入到登錄檔項HKEY_LOCAL_MACHINE SoftwareMicrosoftWindowsCurrent VersionPolicies Explorer下。在該項下新建一個雙位元組值項NoDriveTypeAutoRun。該值項只使用了最低位的位元組。

  這些位為0時,表示允許該種類的驅動器的自動執行特性,為1時,表示禁止該種類驅動器的自動執行特性。預設值為0x95,即第0,2,4,7位為1,表示軟盤,網路盤,未知型別盤的自動執行特性被禁止。修改後需要重新啟動機器使改動生效。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-945970/,如需轉載,請註明出處,否則將追究法律責任。

相關文章