我是一名小白,编了一段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
展开
 我来答
SIR007_001
2012-10-13 · TA获得超过554个赞
知道小有建树答主
回答量:464
采纳率:66%
帮助的人:407万
展开全部
提供个思路可以尝试一下:
第一个问题:可以用三个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内容(即正确密码),并退出循环(结束程序)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式