俞木發(fā)
如上所述,一些程序安裝后默認(rèn)需要使用UAC的提權(quán)方式運(yùn)行,它們的目的當(dāng)然是為了能在后臺(tái)隨意地修改你的系統(tǒng)設(shè)置或文件,這很容易給系統(tǒng)帶來(lái)安全隱患。比如某游戲程序的安裝路徑是“C:\Program Files(x 8 6)\We G ame\We g ame .exe”,安裝后可以看到這是一個(gè)需要提權(quán)才能運(yùn)行的程序,在程序的圖標(biāo)(或快捷方式)右下角會(huì)自帶一個(gè)藍(lán)色盾牌標(biāo)記,為了便于描述,下面稱這類程序?yàn)椤岸芘瞥绦颉保▓D1)。
這樣在默認(rèn)情況下只能以管理員身份運(yùn)行,我們只能在彈出UAC攔截時(shí)被動(dòng)地點(diǎn)擊“是”提權(quán)運(yùn)行,如果點(diǎn)擊“否”則會(huì)自動(dòng)關(guān)閉程序(圖2)。
那么怎么判斷“盾牌程序”是否是以提權(quán)方式運(yùn)行的呢?可以借助任務(wù)管理器來(lái)查看。如在圖2所示的界面中點(diǎn)擊“是”運(yùn)行程序,接著啟動(dòng)任務(wù)管理器,切換到“詳細(xì)信息”,然后在“PID”上右擊并選擇“顯示列”,在打開(kāi)的“選擇列”窗口中勾選其中的“特權(quán)”。返回任務(wù)管理器,便可以看到“wegame.exe”進(jìn)程的“特權(quán)”下顯示的值為“是”,表示其運(yùn)行在特權(quán)狀態(tài)下,程序是通過(guò)UAC提權(quán)運(yùn)行的(圖3)。
實(shí)際上這些程序是可以在正常權(quán)限下運(yùn)行的。不過(guò),我們需要通過(guò)自制批處理才可以實(shí)現(xiàn)。首先啟動(dòng)記事本程序,然后輸入下列的代碼,將其保存為“cfan .bat”并放置在桌面上(圖4)。
代碼解釋:
第一行代碼設(shè)置程序的實(shí)際路徑。如果需要使用其他的程序,請(qǐng)自行更換“ApplicationPath=”后的路徑即可。第二行代碼則使用命令提示符的方式啟動(dòng)指定的程序,并為其設(shè)置“RUNASINVOKER”屬性運(yùn)行。
這樣,以后當(dāng)我們需要啟動(dòng)圖1所示的游戲時(shí),只要運(yùn)行“cfan.bat”即可。程序成功運(yùn)行后,再次打開(kāi)任務(wù)管理器,切換到“詳細(xì)信息”,可以看到“wegame.exe”進(jìn)程,其“特權(quán)”下顯示的是“否”,表示程序是使用標(biāo)準(zhǔn)權(quán)限運(yùn)行。這樣既可以很好地限制“we g ame.exe”對(duì)系統(tǒng)的更改,同時(shí)又可以保證UAC默認(rèn)的攔截功能沒(méi)有變化(圖5)。
對(duì)于一些已經(jīng)確定是安全的程序,我們則可以通過(guò)以管理員身份啟動(dòng)桌面進(jìn)程(explorer.exe)來(lái)繞開(kāi)UAC的攔截。不過(guò),我們無(wú)法直接在“explorer.exe”上右擊選擇“以管理員身份運(yùn)行”方式實(shí)現(xiàn),需要先以管理員身份運(yùn)行“PowerShell”,然后依次輸入下列的命令(每輸入一行命令后均需回車確認(rèn))(圖6):
taskkill /f /im explorer.exe
c:\windows\explorer.exe /nouaccheck
代碼解釋:
先使用taskkill命令來(lái)強(qiáng)行結(jié)束當(dāng)前系統(tǒng)的explorer.exe進(jìn)程,接著再使用“/nouac check”參數(shù)啟動(dòng)explorer.exe進(jìn)程。
上述的命令運(yùn)行后會(huì)自動(dòng)關(guān)閉桌面,接著又會(huì)自動(dòng)重新加載桌面。由于重新加載的“explorer.exe”進(jìn)程是在管理員身份運(yùn)行的Powe r S h e l l中啟動(dòng),因此該進(jìn)程自動(dòng)繼承管理員權(quán)限,現(xiàn)在我們?cè)谧烂鎲?dòng)的“盾牌程序”都可以繞開(kāi)UAC攔截。
比如在執(zhí)行系統(tǒng)維護(hù)操作的時(shí)候,我們經(jīng)常要頻繁地運(yùn)行一些“盾牌程序”,如regedit.exe、mmc.exe等,現(xiàn)在則只需在“運(yùn)行”框中輸入“regedit.exe”并回車,就可以直接啟動(dòng)注冊(cè)表編輯器(常規(guī)桌面下則需要在彈出UAC攔截時(shí)點(diǎn)擊“是”才可以運(yùn)行)。啟動(dòng)注冊(cè)表編輯器后參照?qǐng)D3所示的方法,在任務(wù)管理器可以看到“regedit.exe”進(jìn)程的“特權(quán)”顯示為“是”(圖7)。
此外,在這個(gè)桌面狀態(tài)下運(yùn)行的其他程序默認(rèn)也都是以管理員身份運(yùn)行。比如在“運(yùn)行”框中輸入“c m d.e xe”并回車,運(yùn)行后顯示的窗口標(biāo)題就是“管理員:命令提示符”,可以在其中輸入“diskpar t”命令(該命令需要管理員權(quán)限才可以正常運(yùn)行)進(jìn)行測(cè)試(圖8)。
注意:屏蔽了UA C 的攔截后,請(qǐng)勿在這種狀態(tài)下運(yùn)行一些危險(xiǎn)程序。完成維護(hù)操作后,請(qǐng)去除“/nouaccheck”參數(shù),再次運(yùn)行圖6所示的命令恢復(fù)到正常設(shè)置。