天天看點

U盤病毒原理分析和解決方法

由于現在U盤相當普及,導緻了U盤病毒的泛濫。很多人對U盤病毒非常痛恨,但是卻找不到一種較好的解決方案。特别是比如有的時候新安裝的系統,一不小心插個U盤,努力全部白費了,真是讓人欲哭無淚啊。

U盤病毒,顧名思義,是通過U盤傳播的病毒,是一種手段而不是目的。很多“著名“的病毒,比如熊貓燒香,都擁有通過U盤傳播的能力。目前U盤病毒大緻可以分為兩類,一種是Autorun.inf型的,這也是大部分U盤病毒的類型。另外一種則是Autorun.inf+EXE全盤感染。這種類型的相當惡毒,因為它會感染U盤上的所有EXE可執行檔案,隻要執行這些EXE就會立即感染。

不論是哪種,U盤病毒的核心機制就是AutoRun,相信很多人都知道從Win95開始,Windows系統就擁有一個自動播放的功能,可以為使用者提供友善的自動安裝的功能。但是Autorun還有一些鮮為人知的功能。Autorun可以将指定的項挂載到右邊鍵菜單中,這樣一旦使用者輕按兩下打開裝置,即激活病毒。

下面是一個典型Autorun.inf的檔案結構:

[AutoRun]

Open= Test.exe

Shell\Open=打開(&O)

Shell\Open\Command=Test.exe

Shell\Open\Default=1

Shell\Explore=資料總管(&X)

Shell\Explore\Command= Test.exe

将此檔案命名為Autorun.inf,然後置于任意一個盤(不論是硬碟還是U盤)根目錄,一旦使用者輕按兩下盤符,或者右鍵選擇了“打開”或者“資料總管”,則會執行Test.exe。這個過程是由 Windows Explorer完成的,Explorer會自動搜尋每個盤的根目錄是否存在名為“Autorun.inf“的檔案,一旦找到則加載進行相應處理。

從程式角度來看,“Autorun.inf“這個字元串是被寫死在Shell32.Dll中的,現在網上有種U盤病毒永久免疫器,就是通過修改Shell32.Dll裡面的“Autorun.inf“字元串,使得Autorun失效。這種方法可能會影響系統穩定性,故不推薦。

知道了原理,就可以很快知道應對政策了。即防止病毒建立Autorun.inf。特别是對于硬碟的NTFS檔案系統,我們可以采用權限機制來禁止Autorun.inf,即建立一個同名的檔案夾,然後将其權限設為禁止更改删除即可。

對于非NTFS的盤,則也可以建立同名檔案夾,然後再在此檔案夾中建立一個不可删除的目錄,方法如下,打開cmd,切換到建立的Autorun.inf檔案夾下,然後 輸入md xxxx..\ 即可建立一個特殊的檔案夾,這個檔案夾不可通過一般方式删除。這樣病毒由于無法建立Autorun.inf而失效了。目前有的新型病毒可以自動識别這種方式,故此方法也不是總是有效地。

最有效的方法是修改系統資料庫,禁止Autorun.info的挂載。打開系統資料庫編輯器,切換到HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\CurrentVersion\\Explorer\\MountPoints2,右鍵輕按兩下此項,然後點選權限,在彈出的對話框中點選進階,選中包含父權限的複選框,确定後即可更改權限了,将相應使用者的權限設為隻讀即可。一旦操作完成,則Autorun.inf徹底無法起作用了。

U盤病毒隻能在Windows XP及Windows Server 2003上有效,因而大家可以盡快更新到Windows 7,永遠避免U盤病毒的騷擾了。

為了友善清除感染了U盤病毒的盤,我寫了一個小程式,程式使用VC9.0開發。它可以自動識别并清除此類病毒。每次插上u盤之後運作一下即可。操作非常友善。源代碼公開,需要的人可以自行更改。

<a href="http://down.51cto.com/data/2355591" target="_blank">附件:http://down.51cto.com/data/2355591</a>

本文轉自 kevx 51CTO部落格,原文連結:http://blog.51cto.com/spinlock/300801,如需轉載請自行聯系原作者

繼續閱讀