最近筆者在Windows 7系統(tǒng)運行中發(fā)現,以往那些應用程序有的能夠正常運行,有些則被系統(tǒng)禁運了! 這是為什么呢?經過研究學習終于明白。
有些應用程序在Windows 7下無法啟動,這種情形其實在Windows Vista中已有所表現,這是由于Vista系統(tǒng)內核采取了名為WFP(Windows File Protection)的文件保護機制所致,出于安全考慮系統(tǒng)改動了有關文件的 ACL (允許訪問列表),僅僅對于所謂TrustedInstaller級別的用戶給予文件的全權訪問,而在Windows 7中這種保護機制進一步加強,出現了所謂 WRP(Windows Resource Protection),這種安全機制導致的后果之一就是讓以往的有些應用程序出現與當前系統(tǒng)不兼容的癥狀,對此問題能解決嗎?答案是肯定的。
圖1 兼容欄目下拉列表
為此,首先不妨了解清楚哪些應用在Windows 7被禁運,具體查看方式為:打開“控制面板”后點擊“程序”欄目,點擊名為“Run programs made for previous version of Windows”的超鏈接,然后擴展“高級”選項并取消自動修復選項,點擊“下一步”;瀏覽所有程序,找到希望運行的那個程序,比如某個Windows XP系統(tǒng)補丁包,點擊“下一步”按鈕后會出現系統(tǒng)提示信息,但老實說這些信息對于我們解決這一問題很難有多少幫助,但是為了讓該程序能夠重新啟用,可以將其設置為兼容模式。其具體操作方式為:右擊該程序后從屬性菜單中切換到兼容欄目,然后從下拉列表中選擇舊的操作系統(tǒng)即可,如圖1所示。
我們在實際工作中還會遇到相反的情形,即:對于有些應用,雖然Windows 7允許它們正常運行,但是出于具體工作尤其是安全要求,希望將它們禁運,此時我們同樣能夠辦到。實現方法就是通過活動目錄的軟件約束策略SRP(software restriction policy),需要指出的是SRP針對的是機器而并非用戶。為此我們打開組策略編輯器“gpedit.msc”后鎖定以下選項:
現在需要新建一個策略,為此右點上述選項后 選 取“New Software Restriction Policies”選項,然后就會看到以下三級安全選項:
1.Disallowed——默認時不運行任何軟件,只有例外軟件可運行;
2.No software runs by Basic User——允許所有軟件在沒有管理員權限時也可運行;
3.Unrestricted—— 所有軟件都可運行,除非指定某個軟件不許運行。
此時右擊第3個選項,選擇其為默認方式。接著,我們需要進入規(guī)則設置環(huán)節(jié)去添加新規(guī)則,此時可以看到有如下四個規(guī)則選項:
1.Hash——勾選禁止的哈希列表;
2.Certificate——采用數字認證方式阻止應用程序運行;
3.Path——禁止全路徑應用運行;
4.Zone——采用數據流方式查看文件下載來源,并禁止其直接顯示相關信息。
這里我們選擇第一種規(guī)則選項,即hash規(guī)則。我們不妨將系統(tǒng)允許正常運行的畫圖程序設置為禁運,為此點擊瀏覽按鈕找到如下程序:
當規(guī)則生效后,我們再次嘗試運行畫圖程序時,就會遇到以下禁運信息,如圖2所示。
圖2 禁運信息
文末,筆者想要補充說明的是,有些惡意代碼往往在系統(tǒng)啟動之初就會運行,為了防止這種陰謀得逞,管理員往往通過運行工具命令“MSConfig”將某些不明程序加以禁用。但魔高一丈的是,有些惡意代碼會在“MSConfig”啟動欄中消失,但是卻無法躲過注冊表,其在注冊表的具體位置如下所列:
其中,蜂巢HKEY_LOCAL_MACHINE指的是該機器上所有用戶都會執(zhí)行,而蜂巢HKEY_CURRENT_USER 表示只限當前用戶可執(zhí)行。