用VBS來代替BAT或CMD檔案進行命令第1/2頁

來源:互聯網
上載者:User

自動匯入註冊表的,帶檢測:
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\*.*

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.