詳解木馬病毒在windows系統中的幾種啟動方式

regedit

詳解木馬病毒在windows系統中的幾種啟動方式 如果你的電腦中一種新型的木馬病毒你能怎麼辦?特別是一些未知類型的木馬病毒,使用一般的殺毒軟體或防木馬軟體是很難將其根除的,這時候我們就需要手動來清除這些病毒檔了。

其實我們只要能破壞這些病毒的啟動條件,就可以達到清除病毒的目的,為此,就本人在這方面的一些經驗提供給大家,以供參考。

病毒的啟動主要分為3類,分別是:一、隨windows系統啟動,二、映射劫持啟動,三、捆綁和嵌入正常程式中啟動。下面我們主要就第一和第二點進行詳細介紹。

第一部分:Windows自啟動程式

一、經典的啟動——“啟動”檔夾

單擊“開始→程式”,你會發現一個“啟動”功能表,這就是最經典的Windows啟動位置,右擊“啟動”功能表選擇“打開”即可將其打開,如所示,其中的程式和快捷方式都會在系統啟動時自動運行。最常見的啟動位置如下:

當前用戶:

所有用戶:

二、有名的啟動——註冊表啟動項

註冊表是啟動程式藏身之處最多的地方,主要有以下幾項:

1.Run鍵

Run鍵是病毒最青睞的自啟動之所,該鍵位置是[HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrentVersionRun]

和[HKEY_LOCAL_MACHINESoftwareMicrosoft WindowsCurrentVersionRun],其下的所有程式在每次啟動登錄時都會按順序自動執行。

還有一個不被注意的Run鍵,位於註冊表[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun]和[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorerRun],也要仔細查看。

2.RunOnce鍵

RunOnce位於[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce],[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce]鍵,與Run不同的是,RunOnce下的程式僅會被自動執行一次。

3.RunServicesOnce鍵

RunServicesOnce鍵位於[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce]和[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunServicesOnce]下,其中的程式會在系統載入時自動啟動執行一次。

4.RunServices鍵

RunServices繼RunServicesOnce之後啟動的程式,位於註冊表[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices]和[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices]鍵。

5.RunOnceEx鍵

該鍵是Windows XP/2003特有的自啟動註冊表項,位於[HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx]和[HKEY_LOCAL_MACHINE SOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx]。

6.load鍵

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindows]下的load鍵值的程式也可以自啟動。

7.Winlogon鍵

該鍵位於位於註冊表[HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon]和[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon],注意下面的Notify、Userinit、Shell鍵值也會有自啟動的程式,而且其鍵值可以用逗號分隔,從而實現登錄的時候啟動多個程式。

8.其他註冊表位置

還有一些其他鍵值,經常會有一些程式在這裏自動運行,如:

[HKEY_CURRENT_USER SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell]

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad]

[HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsSystemScripts]

[HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowsSystemScripts]

小提示:

註冊表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]鍵的區別:前者對所有用戶有效,後者只對當前用戶有效。

三、古老的啟動——自動批次檔案

從DOS時代過來的朋友肯定知道autoexec.bat(位於系統盤根目錄)這個自動批次檔案,它會在電腦啟動時自動運行,早期許多病毒就看中了它,使用deltree、format等危險命令來破壞硬碟資料。如“C盤殺手”就是用一句“deltree /yc:*.*”命令,讓電腦一啟動就自動刪除C盤所有檔,害人無數。

小提示:

★在Windows 98中,Autoexec.bat還有一個哥們——Winstart.bat文件,winstart.bat位於Windows檔夾,也會在啟動時自動執行。

★在Windows Me/2000/XP中,上述兩個批次檔案默認都不會被執行。

四、常用的啟動——系統配置檔

在Windows的配置檔(包括Win.ini、System.ini和wininit.ini檔)也會載入一些自動運行的程式。

1.Win.ini文件

使用“記事本”打開Win.ini檔,在[windows]段下的“Run=”和“LOAD=”語句後面就可以直接加可執行程式,只要程式名稱及路徑寫在“=”後面即可。

小提示:

“load=”後面的程式在自啟動後最小化運行,而“run=”後程式則會正常運行。

2.System.ini文件

使用“記事本”打開System.ini文件,找到[boot]段下“shell=”語句,該語句默認為“shell=Explorer.exe”,啟動的時候運行Windows外殼程式explorer.exe。病毒可不客氣,如“妖之吻”病毒乾脆把它改成“shell=c:yzw.exe”,如果你強行刪除“妖之吻”病毒程式yzw.exe,Windows就會提示報錯,讓你重裝Windows,嚇人不?也有客氣一點的病毒,如將該句變成“shell=Explorer.exe 其他程式名”,看到這樣的情況,後面的其他程式名一定是病毒程式如所示。

3.wininit.ini

wininit.ini檔是很容易被許多電腦用戶忽視的系統配置檔,因為該檔在Windows啟動時自動執後會被自動刪除,這就是說該檔中的命令只會自動執行一次。該配置檔主要由軟體的安裝程式生成,對那些在Windows圖形介面啟動後就不能進行刪除、更新和重命名的檔進行操作。若其被病毒寫上危險命令,那麼後果與“C盤殺手”無異。

小提示:

★如果不知道它們存放的位置,按F3鍵打開“搜索”對話方塊進行搜索;

★單擊“開始→運行”,輸入sysedit回車,打開“系統配置編輯程式”,如圖2所示,在這裏也可以方便的對上述檔進行查看與修改。

五、智能的啟動——開/關機/登錄/註銷腳本

在Windows2000/XP中,單擊“開始→運行”,輸入gpedit.msc回車可以打開“組策略編輯器”,在左側窗格展開“本地電腦策略→用戶配置→管理範本→系統→登錄”,然後在右窗格中雙擊“在用戶登錄時運行這些程式”,單擊“顯示”按鈕,在“登錄時運行的專案”下就顯示了自啟動的程式。

六、定時的啟動——任務計畫

在默認情況下,“任務計畫”程式隨Windows一起啟動並在後臺運行。如果把某個程式添加到計畫任務檔夾,並將計畫任務設置為“系統啟動時”或“登錄時”,這樣也可以實現程式自啟動。通過“計畫任務”載入的程式一般會在任務欄系統託盤區裏有它們的圖示。大家也可以雙擊“控制面板”中的“計畫任務”圖示查看其中的專案。

小提示:“任務計畫”也是一個特殊的系統檔夾,單擊“開始→程式→附件→系統工具→任務計畫”即可打開該檔夾,從而方便進行查看和管理。

七、跟著別人的啟動(病毒映射劫持,在下部分介紹)——隨軟體開啟的程式

八、從“系統資訊”查看啟動程式

單擊“開始→程式→附件→系統工具→系統資訊”,雙擊“軟體環境”,單擊“啟動程式”,在右邊視窗出現的程式就是所有自啟動程式,在“裝載源”或“位置”下顯出該程式是由註冊表還是“啟動”檔夾啟動的。從這裏只能查看自啟動程式,不能對自啟動程式進行禁止自啟動等任何更改操作。

九、MSConfig

在Windows98/Me/XP/2003中,單擊“開始→運行”,輸入msconfig回車即可打開“系統配置實用程式”視窗,單擊“啟動”標籤,在列表框中顯示的就是從註冊表、“啟動”檔夾和系統配置檔中自啟動的程式。程式前有對號的是允許自啟動的程式,沒有對號的則不會自啟動。如果想取消某個程式的自啟動,單擊取消程式前的對勾即可。還可以在autoexec.bat、system.ini和win.ini標籤裏面對它們進行編輯,取消其中的自啟動程式。

十、以windows服務方式啟動

這種方式目前已經少有病毒見到,但作為一種行之有效的啟動方式,仍被以些病毒採用。這種啟動方式的病毒,我們可以通過“開始→控制面板→管理工具→服務”來查看。一般通過這種方式啟動的病毒服務狀態都是“自動”和“已啟動”狀態的,我們可以通過修改其狀態為“已停止”和“禁用”來停止病毒服務,並且,在該服務的“屬性”中有此病毒程式的路徑及名稱,我們可以在此路徑下刪除病毒檔即可殺滅病毒。

第二部分:病毒的映象劫持技術

映射劫持的定義

所謂的映射劫持(IFEO)就是Image File Execution Options,位於註冊表的[HKEY_LOCALMACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage FileExecution Options]由於這個項主要是用來調試程式用的,對一般用戶意義不大。默認是只有管理員和localsystem有權讀寫修改。

通俗一點來說,就是比如我想運行QQ.exe(記事本),結果運行的卻是運行了notepad.exe(記事本),也就是說在這種情況下,QQ程式被notepad給劫持了,即你想運行的程式被另外一個程式代替了。

映射劫持病毒

雖然映射劫持是系統自帶的功能,對我們一般用戶來說根本沒什麼用的必要,但是就有一些病毒通過映射劫持來做文章,表面上看起來是運行了一個程式,實際上病毒已經在後臺運行了。

但是與一般的木馬,病毒不同的是,就有一些病毒偏偏不通過這些來載入自己,不隨著系統的啟動運行,而是等到你運行某個特定的程式的時候運行,這也抓住了一些用戶的心理,一般的用戶,只要發覺自己的機子中了病毒,首先要察看的就是系統的載入項,很少有人會想到映射劫持,這也是這種病毒高明的地方。

映射劫持病毒主要通過修改註冊表中的[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionImage File Execution options] 項來劫持正常的程式,比如有一個病毒vires.exe 要劫持 qq 程式,它會在上面註冊表的位置新建一個qq.exe項,再這個項下面新建一個字串的鍵值 debugger內容是:C:WINDOWSSYSTEM32ABC.EXE(這裏是病毒藏身的路徑)即可。當然如果你把該字串值改為任意的其他值的話,系統就會提示找不到該檔。

映射脅持的基本原理

WINDOWS NT系統在試圖執行一個從命令行調用的可執行檔運行請求時,先會檢查運行程式是不是可執行檔,如果是的話,再檢查格式的,然後就會檢查是否存在。如果不存在的話,它會提示系統找不到檔或者是“指定的路徑不正確”等等。把這些鍵刪除後,程式就可以運行!

映射劫持的應用

★禁止某些程式的運行

先看一段代碼:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsqq.exe]

“Debugger"="notepad.exe"

使用記事本,把上面這段代碼複製到記事本中,並另存為 ABC.reg,雙擊導入註冊表,打開你的QQ看一下效果!

這段代碼的作用是雙擊運行QQ的時候,系統都打開記事本,原因就是QQ被重定向了。如果要讓QQ繼續運行的話,把notepad.exe改為QQ.exe的絕對路徑就可以了。

★偷樑換柱惡作劇

每次我們按下CTRL+ALT+DEL鍵時,都會彈出任務管理器,想不想在我們按下這些鍵的時候讓它彈出命令提示符視窗,下面就教你怎麼玩:

Windows Registry Editor Version 5.00

[HKEY_LOCAL MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionstaskmgr.exe]

“Debugger"="C:WINDOWSpchealthhelpctrbinariesmsconfig.exe"

將上面的代碼在記事本中另存為 task_cmd.reg,雙擊導入註冊表。按下那三個鍵看是什麼效果,不用我說了吧,是不是很驚訝啊!精彩的還在後頭呢!

★讓病毒迷失自我

同上面的道理一樣,如果我們把病毒程式給重定向了,是不是病毒就不能運行了,答案是肯定的!下面就自己試著玩吧!

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssppoolsv.exe]

“Debugger"="123.exe"

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionslogo_1.exe]

“Debugger"="123.exe"

上面的代碼是以金豬報喜病毒和威金病毒為例,這樣即使這些病毒在系統啟動項裏面,即使隨系統運行了,但是由於映射劫持的重定向作用,還是會被系統提示無法找到病毒檔(這裏是logo_1.exe和sppoolsv.exe)。是不是很過癮啊,想不到病毒也有今天!

當然你也可以把病毒程式重定向到你要啟動的程式中去,如果你想讓QQ開機自啟動,你可以把上面的123.exe改為你QQ的安裝路徑即可,但是前提是這些病毒必須是隨系統的啟動而啟動的。

關於映射劫持的預防,主要通過以下幾個方法來實現:

★許可權限制法

如果用戶無權訪問該註冊表項了,它也就無法修改這些東西了。打開註冊表編輯器,進入[HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindowsNTCurrentVersionImage File Execution Options] ,選中該項,右鍵——>許可權——>高級,將administrator 和 system 用戶的許可權調低即可(這裏只要把寫入操作給取消就行了)。

★快刀斬亂麻法

打開註冊表編輯器,進入把[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options]項,直接刪掉 Image File Execution Options 項即可解決問題。

第三部分:捆綁和嵌入(感染)正常程式啟動

這種啟動方式也是一種普遍的病毒啟動方式,也是最讓一般用戶感到頭疼的病毒感染方式,它通過感染和嵌入正常程式中達到使病毒啟動的目的。

一、查看檔最後修改日期和位元組大小

通過列出當前運行的程式目錄,我們可以通過顯示檔的“詳細資訊”來查看檔的最後修改日期和當前檔大小,一般來說,病毒感染的檔的修改日期都很近,而且被感染檔比正常程式檔體積要大一些。要注意的是,病毒嵌入後檔體積大小增加可能不明顯,必須在該檔的屬性中才可以看到最精確的檔體積,通過對比正常程式檔的正確體積和最後修改時間,才能判斷該檔是否被感染。

一旦確定被感染檔,我們可以通過檔替換方式來修復被感染的程式。

小提示:

如果病毒感染了你的作業系統檔,無法在windows中直接置換該檔,可以考慮使用光碟虛擬作業系統或將硬碟掛載到其他電腦上的方法,來完成檔替換工作。

鑒於有部分初學者在修改了QQ重定向註冊表鍵值後,出現QQ打開不了的問題,我在這裏給出解決方法:在註冊表中刪除 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsqq.exe]項即可。