我是一名小白,编了一段vbs代码(暴力破解的),但是有两个问题解决不了,望高手修改一下我的代码!!
第一个问题是:定义数组fori000to999本身是想作为三位数001002但实际上是0到999,这怎么修改呢??第二个问题是:当把试出了正确的密码后,加密的软件打开后,...
第一个问题是:定义数组 for i 000 to 999 本身是想作为三位数 001 002但实际上是0到999,这怎么修改呢??第二个问题是:当把试出了正确的密码后,加密的软件打开后,破解程序仍在继续输入,且不知道真确的密码是多少,显示不出来,希望大虾们也能修改下,让他可以显示真确的秘密而且能在输入正确密码后停止运行,下面是我编的代码:
MsgBox "开始破解"
MyAppName=inputbox("程序名称:","暴力破解","验证")
Set a = CreateObject("WScript.Shell")
a.appactivate MyAppName
For i=10 to 99
a.SendKeys "" & i
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
Next
MsgBox "无法破解"
假设我要破解的代码是
Dim a
Const pass = "123"
Do
a = InputBox("请输入密码", "验证")
If a = pass Then
MsgBox "输入正确"
Set objshell = CreateObject("Wscript.Shell")
objshell.Run "notepad"
CreateObject.Sleep 2000
objshell.AppActivate "无标题-记事本"
objshell.SendKeys "1234"
Exit Do
ElseIf a = "" Then
MsgBox "请输入密码"
Else
MsgBox "输入错误"
End If
Loop 展开
MsgBox "开始破解"
MyAppName=inputbox("程序名称:","暴力破解","验证")
Set a = CreateObject("WScript.Shell")
a.appactivate MyAppName
For i=10 to 99
a.SendKeys "" & i
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
Next
MsgBox "无法破解"
假设我要破解的代码是
Dim a
Const pass = "123"
Do
a = InputBox("请输入密码", "验证")
If a = pass Then
MsgBox "输入正确"
Set objshell = CreateObject("Wscript.Shell")
objshell.Run "notepad"
CreateObject.Sleep 2000
objshell.AppActivate "无标题-记事本"
objshell.SendKeys "1234"
Exit Do
ElseIf a = "" Then
MsgBox "请输入密码"
Else
MsgBox "输入错误"
End If
Loop 展开
展开全部
提供个思路可以尝试一下:
第一个问题:可以用三个for循环来处理000~999
for i = 1 to 9
for j = 1 to 9
for k = 1 to 9
a.SendKeys "" & i&j&k
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
next
next
next
第二个问题有点困难,不知道试验出来后程序名“暴力破解”会不会改变,如果改变的话,可以试着通过判断程序名是否改变来确定是否破解成功。如果不变的话,暂时没有好的办法。
第一个问题:可以用三个for循环来处理000~999
for i = 1 to 9
for j = 1 to 9
for k = 1 to 9
a.SendKeys "" & i&j&k
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
a.SendKeys "{Enter}"
wscript.sleep 500
next
next
next
第二个问题有点困难,不知道试验出来后程序名“暴力破解”会不会改变,如果改变的话,可以试着通过判断程序名是否改变来确定是否破解成功。如果不变的话,暂时没有好的办法。
更多追问追答
追问
这样只是111到999而不是000到999
追答
改一下:
for i = 0 to 9
for j = 0 to 9
for k = 0 to 9
.....
next
next
next
说一下编程思路:
1)用for 循环SENDKEYS “ i&j&k ”
2) 在for内SENDKEYS,回车并延时后加判断语句if ....then
判断notepad.exe进程是否启动(运行程序前需要先关闭所有记事本程序)
如果启动用MSGBOX 报出SENDKEYS内容(即正确密码),并退出循环(结束程序)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询