朋友懷疑是因?yàn)榇蛄藥讉€(gè)補(bǔ)丁,才造成了上述故障。筆者卻不這樣認(rèn)為,安裝補(bǔ)丁只會(huì)讓系統(tǒng)變得更加安全,絕不會(huì)造成系統(tǒng)出現(xiàn)運(yùn)行故障。筆者重啟該機(jī)后,發(fā)現(xiàn)該機(jī)啟動(dòng)很緩慢,硬盤燈不停的閃爍,看來只有進(jìn)入安全模式查找原因了。再次重啟進(jìn)入安全模式,經(jīng)過檢測(cè),發(fā)現(xiàn)該機(jī)已經(jīng)安裝了所有最新的補(bǔ)丁,系統(tǒng)運(yùn)行狀態(tài)正常。因?yàn)榘踩J绞亲睢皢渭儭钡倪\(yùn)行環(huán)境,所以可以判斷出系統(tǒng)文件基本沒有問題。估計(jì)應(yīng)該是在啟動(dòng)過程中,某個(gè)程序搗亂所致。因?yàn)榘踩J經(jīng)]有問題,就已經(jīng)說明該故障和補(bǔ)丁沒有直接關(guān)系,否則的話往往會(huì)導(dǎo)致系統(tǒng)徹底崩潰。即使補(bǔ)丁存在某些功能上的問題,也不會(huì)導(dǎo)致安全模式運(yùn)行穩(wěn)定而正常模式出現(xiàn)問題的情況。
為了穩(wěn)妥起見,在控制面板中運(yùn)行“添加或刪除程序”,將最近安裝的幾個(gè)補(bǔ)丁全部卸載,然后重啟系統(tǒng)發(fā)現(xiàn)故障依然存在,這就完全說明該故障不是因?yàn)檠a(bǔ)丁引發(fā)的。
然后進(jìn)入安全模式,注意到該機(jī)安裝有某款殺毒軟件,而且病毒庫最近才更新過,運(yùn)行殺毒軟件掃描系統(tǒng),沒有發(fā)現(xiàn)木馬病毒等不法之徒。運(yùn)行“services.msc”程序,在服務(wù)管理窗口仔細(xì)檢測(cè),沒有發(fā)現(xiàn)可疑分子。運(yùn)行“msconfig.exe”程序,在系統(tǒng)配置實(shí)用程序窗口中打開“啟動(dòng)”面板,發(fā)現(xiàn)里面有很多啟動(dòng)項(xiàng)。
筆者憑經(jīng)驗(yàn)將不需要的啟動(dòng)項(xiàng)逐一刪除,然后重啟系統(tǒng),但是問題依舊。
在安全模式中再次運(yùn)行“msconfig.exe”程序,對(duì)啟動(dòng)項(xiàng)進(jìn)行檢測(cè)。無意間發(fā)現(xiàn)剛才已經(jīng)刪除的名為“Navigate_UP”的啟動(dòng)項(xiàng)目又重新出現(xiàn)了,與其關(guān)聯(lián)的程序路徑 為“C:Program FilesNavigateLiveWinServe.exe”。既然該啟動(dòng)項(xiàng)能夠自動(dòng)復(fù)活,那就說明一定有某進(jìn)程對(duì)其進(jìn)行監(jiān)控所致。本來想使用FileMon,RegMon等利器,對(duì)該程序的活動(dòng)進(jìn)行監(jiān)控,但是這些工具無法在安全模式下運(yùn)行。筆者亮出了IceSword這款反黑利劍,但是其同樣無法在安全模式下運(yùn)行。打開系統(tǒng)自帶的任務(wù)管理器,對(duì)進(jìn)程信息進(jìn)行分析,沒有發(fā)現(xiàn)明顯的可疑進(jìn)程。
既然如此,就直接進(jìn)入“C:Program FilesNavigateLive”路徑來一探究竟吧。但是進(jìn)入“C:Program Files”文件夾后,卻找不到“NavigateLive”目錄。在文件夾選項(xiàng)窗口中選擇“顯示所有的文件和文件夾項(xiàng)”,取消“隱藏受保護(hù)的操作系統(tǒng)文件”項(xiàng)的選擇狀態(tài)。之后依然無法顯示“NavigateLive”目錄。筆者運(yùn)行“cmd.exe”程序,在命令行窗口中進(jìn)入“C:Program Files”路徑,執(zhí)行“cd NavigateLive”命 令,“摸黑”進(jìn)入了該目錄,執(zhí)行“dir”命令,終于可以看到其中的所有文件了。但是試圖使用“del”命令刪除其中的文件,或者使用“arrtib”命令修改其文件屬性操作時(shí),系統(tǒng)都提示無法找到對(duì)應(yīng)的路徑,而無法順利進(jìn)行??吹狡渲杏袀€(gè)名為“Uninstall.exe”的程序,估計(jì)是卸載某軟件用的。
運(yùn)行該程序后,彈出確認(rèn)卸載的對(duì)話框,確定后也沒有什么具體的動(dòng)作。重啟系統(tǒng)后故障依舊。不過,根據(jù)以上情況分析,可以得出結(jié)論——這個(gè)奇怪的程序一定有某個(gè)進(jìn)程在背后“照應(yīng)”,一旦發(fā)現(xiàn)注冊(cè)表中對(duì)應(yīng)的啟動(dòng)項(xiàng)消失,就會(huì)立即進(jìn)行恢復(fù),好讓該程序跟隨系統(tǒng)自動(dòng)運(yùn)行。同時(shí)該程序已經(jīng)處于加載運(yùn)行狀態(tài),所以可以對(duì)其安裝目錄進(jìn)行保護(hù),禁止用戶對(duì)其進(jìn)行瀏覽、刪除、更改屬性等操作。
一般來說在安全模式下,普通的程序是無法正常啟動(dòng)并執(zhí)行上述監(jiān)控動(dòng)作的。唯一的可能是惡意程序采用了驅(qū)動(dòng)加載的模式,將自身偽裝成合法的驅(qū)動(dòng)文件,達(dá)到在安全模式下非法活動(dòng)的目的。
為了找到深度潛伏的惡意程序,筆者使用WinPE優(yōu)盤啟動(dòng)系統(tǒng),進(jìn)入WinPE環(huán)境 后,進(jìn) 入“C:Program Files”文件夾,找到了其中的“NavigateLive”目 錄,將其屬性修改為正常狀態(tài),并將其完整備份出來。之后刪除“NavigateLive”目 錄,重啟系統(tǒng)后,發(fā)現(xiàn)問題依然沒有解決。打開備份出來的“NavigateLive”目錄,發(fā)現(xiàn)其中存在名為“filelog.inf”的文件,使用記事本打開該文件,發(fā)現(xiàn)里面提供了相關(guān)的驅(qū)動(dòng)程序安裝信息,顯示名為“device.sys”的驅(qū)動(dòng)文件藏身于“C:WindowsSystem32drivers”路徑中??磥斫K于找到幕后黑手了,再次使用WinPE優(yōu)盤優(yōu)盤啟動(dòng)系統(tǒng),在WinPE環(huán)境中進(jìn)入“C:WindowsSystem32drivers”,發(fā)現(xiàn)其中果然存在上述“device.sys”文件,這明顯是一個(gè)來歷不明的驅(qū)動(dòng)文件。
先將其屬性修改為正常,之后將其備份出來,然后將其刪除。同時(shí)對(duì)“C:Program FilesNavigateLive”進(jìn) 行 檢測(cè),確保該文件夾以及其中的文件全部被刪除。之后重新啟動(dòng)系統(tǒng),系統(tǒng)啟動(dòng)迅速,運(yùn)行速度正常。
為了消除垃圾信息,運(yùn)行“regedit.exe”程序,在注冊(cè)表編輯器中找到和“Navigate_Up”的啟動(dòng)項(xiàng)關(guān)聯(lián)的鍵值,將其刪除。因?yàn)橐呀?jīng)將補(bǔ)丁卸載,為此又重新下載安裝了對(duì)應(yīng)的幾個(gè)補(bǔ)丁程序。在之后的測(cè)試中,系統(tǒng)已經(jīng)徹底恢復(fù)了活力。
由此看來,以上故障主要是由潛伏在系統(tǒng)中的惡意程序造成的,和系統(tǒng)補(bǔ)丁沒有關(guān)系。
為了進(jìn)一步了解該惡意程序的特點(diǎn),筆者將其備份的“NavigateLive”目錄放置到了虛擬機(jī)中,進(jìn)入該目錄,仔細(xì)查看其中的文件,僅僅從圖標(biāo)來看,這些似乎都是老實(shí)本分的文件,例如TMP、EXE、SYS等,很容易對(duì)用戶造成錯(cuò)覺,以為這是正常的軟件。運(yùn)行其中的“Winserve.exe”程序,卻發(fā)現(xiàn)系統(tǒng)并沒有出現(xiàn)運(yùn)行緩慢的跡象。運(yùn)行IceSword這款利器,在進(jìn)程列表中發(fā)現(xiàn)了“netserch.exe”和“serverhost.exe”的隱藏進(jìn)程,怪不得在Windows的任務(wù)管理器中無法發(fā)現(xiàn)其蹤跡,與其關(guān)聯(lián)的文件藏身地為“C:Windowssystem32”文件夾。在IceSword中查看內(nèi)核加載模塊,發(fā)現(xiàn)名為“device.sys”模塊,這是通過驅(qū)動(dòng)加載的。
當(dāng)進(jìn)入“C:Windowssystem32drivers”文件夾,不僅發(fā)現(xiàn)了“device.sys”文件,而且通過對(duì)文件創(chuàng)建日期進(jìn)行排序,還發(fā)現(xiàn)了“advice.sys”和“nprocess.sys”兩個(gè)可疑驅(qū)動(dòng)文件。在IceSword的內(nèi)核模塊列表中同樣發(fā)現(xiàn)了它們的“身影”,看來這三個(gè)驅(qū)動(dòng)文件都是惡意軟件的“杰作”。
在Icesword中查看啟動(dòng)項(xiàng)目,可以發(fā)現(xiàn)“Navigate_UP”啟動(dòng)項(xiàng)。但是在Windows自帶的注冊(cè)表編輯器中卻無法直接發(fā)現(xiàn)其蹤跡,看來惡意程序一定對(duì)其進(jìn)行了隱藏處理。
使用Icesword將上述“device.sys”、“advice.sys”、“nprocess.sys”等文件強(qiáng)制刪除后,當(dāng)重啟系統(tǒng)后,發(fā)現(xiàn)系統(tǒng)彈出錯(cuò)誤信息,提示和來源為“Service Control Manager”,ID分別為7000和7026的事件出現(xiàn)運(yùn)行故障,找不到指定的文件。
究其原因,主要是在注冊(cè)表中殘存有與之相關(guān)的啟動(dòng)信息,但是與之關(guān)聯(lián)的文件已經(jīng)消失的緣故。
進(jìn)入系統(tǒng)后,在注冊(cè)表編輯器中打開“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”分支,將其中名為“Anvice”、“fdevice”、“HidProcess”、“Remote Log”等項(xiàng)目全部刪除,再次啟動(dòng)系統(tǒng)就不會(huì)彈出錯(cuò)誤提示了。
根據(jù)對(duì)該惡意軟件的分析不難看出,其千方百計(jì)地對(duì)自身的行蹤進(jìn)行隱藏,來保持自身的順利運(yùn)行。不過,這種保護(hù)措施也恰恰暴露了自己,因?yàn)閷?duì)注冊(cè)表啟動(dòng)項(xiàng)的監(jiān)控,來自動(dòng)恢復(fù)被刪除的啟動(dòng)項(xiàng),讓有經(jīng)驗(yàn)的用戶很容易產(chǎn)生警惕。因?yàn)樵摍C(jī)上安裝的某殺毒軟件并沒有發(fā)現(xiàn)并清除該惡意軟件,說明該惡意軟件并不像木馬病毒那樣張揚(yáng),而是屬于潛伏性很高的類型。估計(jì)應(yīng)該是某些不良網(wǎng)站開發(fā)的用來收集用戶各種敏感信息的工具,類似于流氓軟件的性質(zhì)。在一般情況下,該惡意軟件不會(huì)對(duì)系統(tǒng)正常運(yùn)行造成太大的影響。很可能是在該惡意軟件潛伏運(yùn)行以后,用戶安裝了某些補(bǔ)丁、軟件或者某些操作,造成該惡意軟件和系統(tǒng)發(fā)生了沖突,才導(dǎo)致上述故障的發(fā)生。由此不難發(fā)現(xiàn),對(duì)于系統(tǒng)出現(xiàn)的異?,F(xiàn)象,不能僅僅從某些軟件上著解決。
例如,在本例中不能因?yàn)榘惭b了幾個(gè)補(bǔ)丁,就想當(dāng)然地認(rèn)為故障和補(bǔ)丁有關(guān),而應(yīng)該從軟件和軟件之間,軟件和系統(tǒng)之間可能存在的沖突入手,來發(fā)現(xiàn)并解決問題。從惡意軟件,以及木馬病毒等不法分子的入侵手法上看,以往的通過啟動(dòng)項(xiàng),文件關(guān)聯(lián)的老伎倆逐漸失寵,通過服務(wù)或者驅(qū)動(dòng)加載等新技術(shù)已經(jīng)成為主流,很值得引起我們的警覺。
很多人以為在安全模式下可以讓惡意程序失去活力,這一看法具有一定的片面性,因?yàn)橛行?qū)動(dòng)是可以在安全模式下加載運(yùn)行的,這就為惡意程序在安全模式下活動(dòng)創(chuàng)造了條件。所以,安全模式其實(shí)并非絕對(duì)安全。
此外,一些常用的安全軟件可能會(huì)在安全模式下失去“功力”,所以應(yīng)該熟練使用系統(tǒng)基本命令來發(fā)現(xiàn)相關(guān)痕跡信息。當(dāng)終止惡意程序運(yùn)行后,不能萬事大吉,而是應(yīng)該跟蹤追擊,發(fā)現(xiàn)其同伙并刪除原本被其隱藏但是已經(jīng)暴露的啟動(dòng)項(xiàng)、可疑文件等對(duì)象。在清除了惡意軟件后,還要進(jìn)入深度檢測(cè),以利于徹底清除殘留的垃圾信息,實(shí)現(xiàn)除惡任務(wù)并讓系統(tǒng)徹底恢復(fù)正常功能的目標(biāo)。