揭密:映像劫持病毒的原理及預防
2007-07-30 09:52
來源:瑞星反病毒資訊網
【簡 介】
所謂的映像劫持(IFEO)就是Image File
Execution Options,位於註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options
由於這個項主要是用來偵錯工具用的,對一般使用者意義不大。預設是只有管理員和local system有權讀寫修改。
映像劫持的定義
所謂的映像劫持(IFEO)就是Image File Execution Options,位於註冊表的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options
由於這個項主要是用來偵錯工具用的,對一般使用者意義不大。預設是只有管理員和local system有權讀寫修改。
通俗一點來說,就是比如我想運行QQ.exe,結果啟動並執行卻是FlashGet.exe,也就是說在這種情況下,QQ程式被FLASHGET給劫持了,即你想啟動並執行程式被另外一個程式代替了。
映像劫持病毒
雖然映像劫持是系統內建的功能,對我們一般使用者來說根本沒什麼用的必要,但是就有一些病毒通過映像劫持來做文章,表面上看起來是運行了一個程式,實際上病毒已經在後台運行了。
大部分的病毒和木馬都是通過載入系統啟動項來啟動並執行,也有一些是註冊成為系統服務來啟動,他們主要通過修改註冊表來實現這個目的,主要有以下幾個方面:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
但是與一般的木馬,病毒不同的是,就有一些病毒偏偏不通過這些來載入自己,不隨著系統的啟動運行,而是等到你運行某個特定的程式的時候運行,
這也抓住了一些使用者的心理,一般的使用者,只要發覺自己的機子中了病毒,首先要察看的就是系統的附加元件,很少有人會想到映像劫持,這也是這種病毒高明的地
方。
映像劫持病毒主要通過修改註冊表中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution options 項來劫持正常的程式,比如有一個病毒
vires.exe 要劫持 qq 程式,它會在上面註冊表的位置建立一個qq.exe項,再這個項下面建立一個字串的索引值 debugger
內容是:C:\WINDOWS\SYSTEM32\VIRES.EXE(這裡是病毒藏身的目錄)即可。當然如果你把該字串值改為任意的其他值的話,系統
就會提示找不到該檔案。
映像脅持的基本原理
WINDOWS
NT系統在試圖執行一個從命令列調用的可執行檔運行請求時,先會檢查運行程式是不是可執行檔,如果是的話,再檢查格式的,然後就會檢查是否存在。如果
不存在的話,它會提示系統找不到檔案或者是“指定的路徑不正確等等。把這些鍵刪除後,程式就可以運行!
映像劫持的應用
★ 禁止某些程式的運行
先看一段代碼:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\qq.exe]
"Debugger"="123.exe"
把它儲存為 norun_qq.reg,雙擊匯入註冊表,開啟你的QQ看一下效果!
這段代碼的作用是禁止QQ運行,每次雙擊運行QQ的時候,系統都會彈出一個框提示說找不到QQ,原因就是QQ被重新導向了。如果要讓QQ繼續啟動並執行話,把123.exe改為其安裝目錄就可以了。
★ 偷梁換柱惡作劇
每次我們按下CTRL+ALT+DEL鍵時,都會彈出工作管理員,想不想在我們按下這些鍵的時候讓它彈出命令提示字元視窗,下面就教你怎麼玩:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\taskmgr.exe]
"Debugger"="C:\\WINDOWS\\pchealth\\helpctr\\binaries\\msconfig.exe"
將上面的代碼另存新檔 task_cmd.reg,雙擊匯入註冊表。按下那三個鍵看是什麼效果,不用我說了吧,是不是很驚訝啊!精彩的還在後頭呢?
★讓病毒迷失自我
同上面的道理一樣,如果我們把病毒程式給重新導向了,是不是病毒就不能運行了,答案是肯定的!下面就自己試著玩吧!
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\sppoolsv.exe]
"Debugger"="123.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\logo_1.exe]
"Debugger"="123.exe"
上面的代碼是以金豬病毒和威金病毒為例,這樣即使這些病毒在系統啟動項裡面,即使隨系統運行了,但是由於映象劫持的重新導向作用,還是會被系統提示無法找到病毒檔案(這裡是logo_1.exe和sppoolsv.exe)。是不是很過癮啊,想不到病毒也有今天!
當然你也可以把病毒程式重新導向到你要啟動的程式中去,如果你想讓QQ開機自啟動,你可以把上面的123.exe改為你QQ的安裝路徑即可,但是前提是這些病毒必須是隨系統的啟動而啟動的。
映像劫持的應用也講了不少了,下面就給大家介紹一下如何防止映象劫持吧!
映像劫持的預防
★許可權限制法
如果使用者無權訪問該登錄機碼了,它也就無法修改這些東西了。開啟登錄編輯程式,進入
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options
,選中該項,右鍵——>許可權——>進階,將administrator 和 system
使用者的許可權調低即可(這裡只要把寫入操作給取消就行了)。
★快刀斬亂麻法
開啟登錄編輯程式,進入把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
項,直接刪掉 Image File Execution Options 項即可解決問題。