国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

深入探討XP的Windows文件保護

瀏覽:5日期:2023-07-30 11:53:54

當(dāng)你安裝一個應(yīng)用程序卻不料引起Windows崩潰的時候,很有可能是因為應(yīng)用程序改寫了關(guān)鍵的Windows系統(tǒng)文件,導(dǎo)致系統(tǒng)崩潰。在文件被修改后,結(jié)果往往不可預(yù)知。系統(tǒng)可能正常運行,或者出一些錯誤,或者完全崩潰。幸運的是,Windows 2000, XP,和Server 2003應(yīng)用了一個稱作Windows文件保護(Windows File Protection, WFP)機制,它可以防止關(guān)鍵的系統(tǒng)文件被改寫。在這篇文章中,我將解釋何謂WFP和它是如何工作的。我還要告訴你如何修改或忽略WFP的行為。(注釋:盡管在Windows 2000, XP,和Server 2003上,WFP的運行沒什么區(qū)別,但這篇文章中的信息,包括注冊表相關(guān)條目和SFC語法,是針對XP的。) on error resume next ShockMode = (IsObject(CreateObject('ShockwaveFlash.ShockwaveFlash.5')))

Windows文件保護是如何工作的WFP被設(shè)計用來保護Windows文件夾的內(nèi)容。WFP保護特定的文件類型,比如SYS、EXE、DLL、OCX、FON和TTF,而不是阻止對整個文件夾的任何修改。注冊表鍵值決定WFP保護的文件類型。

當(dāng)一個應(yīng)用程序試圖替換一個受保護的文件,WFP檢查替換文件的數(shù)字簽名,以確定此文件是否是來自微軟和是否是正確的版本。如果這兩個條件都符合,則允許替換。正常情況下,允許替換系統(tǒng)文件的文件種類包括Windows的服務(wù)包,補丁和操作系統(tǒng)升級程序。系統(tǒng)文件還可以由Windows更新程序或Windows設(shè)備管理器/類安裝程序替換。

如果這兩個條件沒有同時滿足,受保護文件將被新文件替換,但將很快被正確的文件替換回來。當(dāng)這種情況發(fā)生時,Windows會從Windows安裝CD或者計算機的DLLCache文件夾中復(fù)制正確版本的文件。

Windows文件保護并不僅僅通過拒絕修改來保護文件,它還可以拒絕刪除。來看看WFP的做法,打開WINDOWSSYSTEM32文件夾并將CALC.EXE文件重命名為CALC.OLD。當(dāng)你這樣做時,一個消息將提示你如果改變這個文件的擴展名可能會導(dǎo)致這個文件不可用。點擊Yes按鈕確認(rèn)這個警告?,F(xiàn)在,等幾分鐘后按F5鍵以刷新文件系統(tǒng)的視圖,完成替換可能要花些時間。當(dāng)文件最終被替換后,Windows會在事件日志中做相應(yīng)的記錄。

關(guān)于WFP值得關(guān)注的一點是它和Windows安裝程序結(jié)合的很緊密。無論何時,如果Windows安裝程序需要安裝一個受保護的文件,它就把這個文件交給WFP,而不是自己試圖去安裝這個文件。然后由WFP判斷是否允許安裝。

系統(tǒng)文件檢查雖然自動文件替換會節(jié)省時間,但也存在需要手動干預(yù)的情況。例如,你可能不愿意空等著WFP去判斷受保護的文件是否已經(jīng)被替換。幸運的是,你可以用一個名為系統(tǒng)文件檢查(SFC)的工具手動控制WFP。

SFC是一個命令行工具,需要在命令提示符窗口下運行。它的語法像這樣:SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]

/SCANNOW選項通知SFC立即掃描所有受保護的系統(tǒng)文件。如果在掃描過程中發(fā)現(xiàn)一個錯誤的文件版本,這個錯誤的版本將被替換為微軟正確的版本。當(dāng)然,這意味著你可能必須有Windows安裝CD,最新的服務(wù)包或者升級補丁。

/SCANONCE參數(shù)通知WFP在系統(tǒng)下次啟動的時候掃描受保護的系統(tǒng)文件。在掃描過程中,任何錯誤的文件將被正確的版本替換。正如這個參數(shù)名的意思,這個掃描只進行一次。之后的系統(tǒng)啟動將恢復(fù)正常,SFC不再運行。

/SCANBOOT參數(shù)和/SCANONCE選項類似。區(qū)別在于SCANONCE只在Windows下次啟動時掃描受保護的文件,而SCANBOOT參數(shù)則在Windows每次啟動時都掃描系統(tǒng)文件。如果需要,這兩個參數(shù)將替換錯誤的系統(tǒng)文件,這可能需要你提供正確文件版本的拷貝。

/REVERT選項用來關(guān)閉SFC,例如,假設(shè)你使用SCANBOOT選項在每次系統(tǒng)啟動的時候掃描所以保護的文件。正如你所能想到的,這確實會增加計算機啟動的總時間。最后,你可能厭倦了漫長的啟動時間,想關(guān)閉SFC。只需要簡單的使用SFC /REVERT,就可以在啟動的時候關(guān)閉SFC。

對/PURGECACHE選項就需要謹(jǐn)慎些。在這之前,我解釋說Windows使用一個緩存文件夾來保存各類系統(tǒng)文件正確版本的備份。如果你運行SFC /PURGECACHE命令,那么這個文件緩存將被清空,那些備份文件將被刪除。這個命令還會導(dǎo)致Windows開始掃描各類受保護文件,并在掃描的同時重建這個文件緩存。當(dāng)然,這可能意味著你必須向Windows提供Windows安裝CD或系統(tǒng)文件升級的拷貝。

最后一個SFC命令選項是/CACHESIZE=x。對于文件緩存的缺省大小確實存在很多自相矛盾的信息,在寫這篇文章的時候,我發(fā)現(xiàn)三篇不同的微軟知識庫文章中指定的文件緩存的缺省大小都不一樣。一篇文章中建議文件緩存的大小為50 MB,而另一篇建議的大小卻是300 MB。更有甚者,第三篇指出這個大小應(yīng)該是無限的。其實缺省值的大小并不重要,因為你可以根據(jù)你的需要,使用CACHESIZE選項來改變這個文件緩存的大小。

在使用CACHESIZE選項時,你必須鍵入命令SFC /CACHESIZE=x,這個x是指你想分配給文件緩存的兆字節(jié)數(shù)。在指定了新的文件緩存大小后,你必須重啟系統(tǒng)并運行SFC /PURGECACHE命令。

通過注冊表控制WFP和SFC在這之前,我解釋說注冊表控制WFP的一般行為。你可以修改幾個不同的注冊表鍵值以控制WFP的行為。你可以在每次運行SFC直接操作這些鍵的一部分,其他一些有更低級別的功能。比如指定文件緩存或者安裝文件的位置。

修改注冊表可能是危險的。如果你做了一個錯誤的修改,可能會導(dǎo)致Windows的崩潰或者破壞你的應(yīng)用程序,所以我強烈建議在嘗試這一節(jié)中描述的任何技術(shù)之前,先對注冊表做一個完整的備份。

為了訪問SFC的注冊表鍵,在Run命令中鍵入REFEDIT命令。這將打開注冊表編輯器,現(xiàn)在瀏覽注冊表樹找到下面這個鍵:HKEY_LOCAL_MacHINESOFTWAREMicrosoftWindows NTCurrentVersionWinLogon

通常地,注冊表中WinLogon鍵一般用來控制各種不同的啟動選項。雖然許多SFC的選項都可控制SFC是否在啟動的的時候運行,但微軟已經(jīng)將SFC相關(guān)的注冊表鍵放在這個部分。

SFCDisabled這個注冊表鍵控制SFC是激活的還是無效的。實際上你只需通過改變DWord的值,就可以得到四個不同的選項。缺省的DWORD值是0。這個設(shè)置激活SFC。通常你不需要改變這個值。然而,你可以在0到4之間修改這個值使得激活SFC但不讓它彈出。

如果將內(nèi)核調(diào)試器掛起,你最好關(guān)閉SFC。如果正在使用一個內(nèi)核調(diào)試器,你可以將注冊表鍵的DWORD值修改為1,這會關(guān)閉SFC并且會在以后的每次啟動時都提示你是否再次激活SFC。

你也可以通過將DWORD值設(shè)為2來關(guān)閉SFC。這個選項只是在下次啟動時關(guān)閉SFC。沒有再激活SFC的選項,因為SFC將在這之后啟動時自動激活。

SFCScan在這之前,我解釋了SFC的SCANONCE, SCANBOOT,和REVERT選項。只要你使用這些選項,實際上SFC是在修改SFCScan注冊表鍵。你可以通過改變它的DWORD賦值來修改這個鍵。

默認(rèn)的值是0。這個值的意思是不需要在啟動時掃描受保護文件。這個設(shè)置相當(dāng)于運行SFC /REVERT命令。

改變DWORD值為1,意思是在每次啟動時都掃描受保護文件。設(shè)置SFCScan的值為1相當(dāng)于運行SFC /SCANBOOT命令。

最后,設(shè)DWORD值為2就是告訴SFC在下次啟動時掃描受保護文件,但并非以后的所有啟動。這相當(dāng)于運行SFC /SCANONCE命令。

SFCQuotaSFCQuota注冊表鍵用來控制SFC文件緩存的大小?;蛟S你會記得,之前在我談到SFC /CACHESIZE=x 命令時,我提到關(guān)于文件緩存的默認(rèn)大小,存在許多不一致的信息。然而在我的系統(tǒng)上,注冊表鍵SFCQuota的DWORD值默認(rèn)為0xffffffff。根據(jù)微軟知識庫,這個值對應(yīng)文件緩存的大小為300 MB。同一篇知識庫的文章指出通過修改這個值為FFFFFFFF,你可以緩沖存儲所有受保護的系統(tǒng)文件。

SFCDllCacheDir在這之前,我解釋說Windows將DLLCACHE文件夾作為存儲系統(tǒng)文件備份的地方。通常的,這個文件夾位于WINDOWSSYSTEM32目錄下。不過通過修改SFCDllCacheDir注冊表鍵,你可以修改文件緩存的位置。

文件緩存文件夾一般位于DLLCACHE目錄下,但通過修改這個注冊表鍵,你可以修改這個文件夾的位置。唯一需要注意的一點是你必須指定一個已經(jīng)存在于本地硬盤驅(qū)動器上的地址。在Windows 2000里,你可以指定一個網(wǎng)絡(luò)共享作為DLLCACHE的路徑,但在Windows XP中沒有這個選項。

SFCShowProgress另一個與SFC相關(guān)的注冊表鍵是SFCShowProgress鍵。這個注冊表鍵允許你設(shè)置它的DWORD值為0,或1。缺省值是0,它將禁止顯示SFC的進程情況。設(shè)值為1就可以讓SFC顯示進展情況。

源文件地址在這之前,我解釋了WFP和SFC是如何工作的,我指出在某些條件下你可能必須提供Windows安裝CD或者有效源文件的拷貝。然而通過修改注冊表,向Windows指明一個源文件目錄是完全可能的,而無需Windows再向你詢問這些文件。

這個注冊表鍵在注冊表的另一部分。你必須找到下面這個鍵:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetup一旦你找到了這個位置,通過使用一個驅(qū)動器符號或者路徑或者一個UNC,你可以指定Windows系統(tǒng)文件的位置。

使用這個命令的前提是你必須將文件放在名為I386的目錄中。例如,如果你的Windows系統(tǒng)文件位于一個名為C:I386的目錄中,那么你只需在注冊表中指定路徑為C:,因為Windows假定I386這個目錄是存在的。同樣的,如果你打算使用一個UNC共享,I386文件夾必須存在于共享目錄下。例如,如果你打算共享的目錄名為FILES,你需要將I386文件夾放在FILES目錄下。然后你可以告訴Windows在server_nameFILES目錄下尋找共享文件。Windows將在server_nameFILESI386目錄中尋找系統(tǒng)文件。

標(biāo)簽: Windows系統(tǒng)
主站蜘蛛池模板: 欧美一级片手机在线观看 | 国产或人精品日本亚洲77美色 | 免费a级在线观看播放 | 久草热视频在线观看 | 日韩国产免费一区二区三区 | 亚洲综合日韩欧美一区二区三 | 国产一区二区三区在线观看影院 | 在线精品国产成人综合第一页 | 一级一片在线播放在线观看 | 国产精彩视频在线观看 | 韩国特级毛片 | 欧美一二区 | 国产一级毛片免 | 免费国产黄 | 亚洲日韩中文字幕 | 热99re久久精品精品免费 | 久久国产情侣 | 精品动漫一区二区 | 欧美三级 欧美一级 | 久草手机视频在线 | 亚洲高清国产品国语在线观看 | 国产精品一级香蕉一区 | 欧美激情亚洲一区中文字幕 | 日韩一级欧美一级毛片在线 | 娇喘嗯嗯~轻点啊视频福利 | 中文字幕国产视频 | 亚洲精品中文字幕久久久久久 | 久久福利资源国产精品999 | 色视频在线观看免费 | 欧美一区二区三区gg高清影视 | 普通话对白国产情侣自啪 | 久久精品国产99久久6动漫欧 | 欧美一区视频在线 | 日韩欧美一级毛片精品6 | 日韩激情中文字幕一区二区 | 一本色道久久综合亚洲精品高清 | 美女叉开腿让男人捅 | 亚洲清纯自偷自拍另类专区 | 一级毛片欧美大片 | 男女男在线精品网站免费观看 | 国产亚洲精品一区二区 |