蠕虫病毒原理与查杀机制分析和设计
作者:崔朝霞等
来源:《数字技术与应用》2014年第04
        摘要:本文通过对VBS蠕虫病毒运行原理进行分析,设计了基于C++程序的专杀工具,并提出防范蠕虫病毒的防范方法。
        关键词:VBS 蠕虫病毒 专杀工具
        中图分类号:TP309.5 文献标识码:A 文章编号:1007-9416201404-0189-01
        1 蠕虫病毒的原理
        1.1 什么是蠕虫病毒
        蠕虫病毒是具备自我复制功能和传染功能的对系统具有破坏性的一种计算机程序,一般是通过计算机网络传播并感染网络上其他计算机的。蠕虫一般无需宿主程序,主要借助网络和进行拷贝和传播自己,传播的过程中有时还会发生变种,具有一定的危害性。蠕虫病毒
和传统意义上的计算机病毒存在很大的区别:由于不需要宿主程序,蠕虫病毒书写简单,甚至有人专门写出蠕虫病毒生成器,成为一些初级黑客的常用工具;当前网络飞速发展使得蠕虫病毒传染性达到难以控制的程度,但是同样由于蠕虫病毒的编制简单,使得我们查看它的代码并最终清除它变得相对简单。
        1.2 蠕虫病毒的原理
        我们以VBS蠕虫病毒为例介绍蠕虫病毒的设计方法。VBS病毒能够直接使用Windows组件,从而接管注册表和系统文件的掌控权,因而VBS蠕虫病毒对系统的破坏性极大,可能会造成网络拥堵、冗余的文件充斥系统,拖慢系统速度。如果系统中存在大量扩展名为vbsvbe格式的文件,同时进程管理器中在运行,且系统速度很慢。那么很可能是中了VBS蠕虫病毒。
        1VBS复制自己。VBS蠕虫病毒通常是借助复制自己的方法来感染其它文件的。其基本原理是是首先生成一个文件系统对象,然后将病毒程序复制到文件中,并修改文件名后缀为vbs,文件名前缀不定。
        set temp=CreateObject“scripting.filesystem”
        temp.GetFilewscript.scriptfullname.copy“.tmp.vbs”
        上述程序描述了程序进行自我复制的原理。只需在病毒程序中加入上述程序段就能够实现病毒的自我拷贝了。
        2VBS蠕虫病毒修改注册表。众所周知,存在于物理磁盘上的病毒本身是没有随机启动功能的,必须将病毒信息写入注册表的启动项才能真正劫持系统。VBS蠕虫病毒修改注册表的过程并不复杂。代码如下:
        Dim Reg
        Set Reg=CreateObject"wscript.Shell"把数据写入注册表在启动项中增加病毒项
        Reg.RegWrite "HKLMSoftwareMicrosoftWindows CurrentVersionRuntemp""%systemroot%temp.vbs"
        3 VBS蠕虫病毒调用外部程序结束杀毒软件。
        Set vShell=CreateObject"wscript.Shell"创建shell对象
        vShell.Run “taskkill /f /”0TRUE ‘结束正在运行的安全防护软件
        这个功能使得大部分Windows操作都可以在程序中实现,比如结束杀毒软件、格式化磁盘,给系统造成毁灭性的破坏。
        2 蠕虫病毒查杀设计和分析
        众所周知,杀毒软件是通过辨别文件的特征码来确定病毒的,杀毒厂商把特征码的集合在一起设计成病毒库。我们可以提取特定病毒的特征码设计专杀工具,一般我们用记事本程序或UltraEdit程序来提取特定的病毒特征码:
        程序偏移地址:0x0C50
        特征码长度:0x2032
        特征码内容:
        36 31 31 32 30 78 2E 39 73 41 0A 5C 2E 5C 53 65
        8B 98 5B 1B 5 21 76 36 2E B0 38 3C 73 83 30 64
        bool scanvirconst char *filelong ofsetint lenthchar *wormvir
        {
        FILE *fPtr=NULL
        int a=0
        char temp[255]
        memsettemp0255);
        bool b=false
        fPtr=fopenfile"rb");
        if(!fPtr goto novir
        fseekfPtrofsetSEEK_SET);
        freadtemplenth1fPtr);
        a=memcmpwormvirtemplenth);
        b=a
        noviriffPtr
        {fclosefPtr); fPtr=NULL}
        return b
        }
        void main()
        {
        long int i
        char worm[32]={0X360X310X310X320X300X780X2E0X390X73vbs病毒生成器0X410X0A0X5C0X2E0X5C0X530X650X8B0X980X5B0X1B0X5
0X210X760X360X2E0XB00X380X3C0X730X830X300X64}
        if killworm"C:\\"0x0c500x20worm))
        {
        system"taskkill /f /");
        system"del /f /a /");
        cout
        }
        else cout
        }
        以上就是在Windows 平台下用VC++6.0根据病毒特征码、偏移地址等信息编写的专杀工具,经测试运行正常。
        3 结语
        根据上面的分析我们可以看出,VBS蠕虫病毒具有很多弱点,用户在使用计算机的过程中必须注意避免打开来源未知的文件或邮件。由于杀毒软件本身对病毒的滞后性,用户应该及时为系统打好微软补丁,才能防患于未然。
        参考文献
        [1]卢立蕾.Windows环境木马进程隐藏技术研究[J].信息网络安全,200940-42.
        [2]罗卫敏.基于良性蠕虫对抗P2P蠕虫策略研究[J].计算机应用研究,200924-28.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。