◎VBS編程打造自己的病毒專殺工具

VBS病毒應該來說還是挺流行的,其力量不可小覷啊!用VBS寫一隻普通病毒(蠕蟲)沒有什麼難度,寫病毒專殺工具也是沒什麼難度的。但在寫出專殺工具前必須瞭解你要殺的這隻病毒的一些信息……比如:病毒釋放的文件,感染的文件,註冊表與進程裏的病毒信息等等。

一、首先來看如何結束病毒進程,之前我在《兩個簡易VBS腳本結束進程與防止進程啓動》給出了關於進程的一些操作方法。假如要結束的病毒進程爲rund1132.exe32之前是兩個數字1),看下面代碼:

set w=getobject("winmgmts:")??'創建WMI對象,執行後面的查詢。

set p=w.execquery("select * from win32_process where name='rund1132.exe'")

for each i in p

i.terminate

next

二、雙擊執行這段代碼就可以結束rund1132.exe進程,這爲後面的殺毒提供方便。病毒進程一被結束就要馬上將其文件給刪掉!假如病毒相關文件爲c:/windows/rund1132.exec:/windows/system32/explorer.exe,它們皆爲隱藏文件。看下面代碼:

set fso=createobject("scripting.filesystemobject") '創建fso對象,此對象以後介紹……

set v1=fso.getfile("c:/windows/rund1132.exe")

set v2=fso.getfile("c:/windows/system32/explorer.exe")

v1.attributes=0 '設置文件爲正常屬性值,即隱藏文件就被還原成正常文件了!

v2.attributes=0 '當病毒文件多時,可以使用for語句。

fso.deletefile("c:/windows/rund1132.exe")

fso.deletefile("c:/windows/system32/explorer.exe")

執行這段代碼,病毒文件就被Killed了……刪除病毒的感染文件也是創建fso對象,然後進行盤符、文件夾、文件遍歷查找,使用ext=lcase(fso.GetExtensionName(file)

)這樣的表達式來獲取所有文件的後綴,最後將ext值與被已知感染文件的後綴(比如.exe)進行判斷,如果爲真則刪除此此文件……思路給出了,代碼有點長有點複雜就不黏貼上來了。其實如果有可能去分析“愛蟲VBS病毒”的代碼,就會發現它在感染文件時使用的正是這樣的遍歷、後綴判別的方法……

三、註冊表是關鍵。有些病毒是很變態的,將系統的許多功能都給禁用了,還往註冊表裏塞一大堆垃圾信息……它要是把WSHwindows腳本宿主)給禁用了或破壞了那我們辛辛苦苦寫的VBS專殺工具就沒法使用了,我感覺VBS寫出來的專殺是有一定的侷限性的……不過對付不這麼變態的病毒還是可以的!

比如:此病毒禁用了“任務管理器”、然後在註冊表中添加下面的值來實現開機自啓動"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/run","c:/windows/rund1132.exe"。如何修復?看下面代碼:

set reg=wscript.createobject("wscript.shell") '創建wscript對象,進行下面的註冊表操作!

'reg.regwrite恢復禁用的任務管理器

reg.regwrite

"HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System/DisableTaskMgr",0,"REG_DWORD"

'reg,regdelete刪除病毒的自啓動項

reg.regdelete

"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/run"

到此用VBS打造自己的病毒專殺工具就有成形了,框架就是這樣。根據不同的病毒特徵寫出不同的專殺工具。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章