用vbs实现的用了破解winrar密码的代码,需要的朋友可以参考下。
代码如下:
title="WinRaR破译(目前只做了破译数字)"
set WshShell = CreateObject("WScript.Shell" )
set fso = CreateObject("scripting.filesystemobject")
Function input()
rar_path=InputBox("请输要解密的rar或zip入路径"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"例如:C:\jiemi.rar或C:\jiemi.zip",title)
If rar_path="" Then Exit Function End If
If fso.fileExists(rar_path) Then
num1=InputBox("密码长度最小值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"例如:0",title)
If rar_path="" Then Exit Function End If
num2=InputBox("密码长度最大值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"注意:比密码最小值要大",title)
If rar_path="" Then Exit Function End If
If num2 > num1 Then
speed=InputBox("请选择解密的速度(建议选3)"&Chr(13)&Chr(10)&"密码范围短则建议选选小于3(默认为3)"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"1:一倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"2:二倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"3:三倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"4:四倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"5:五倍速度",title)
code num1,num2,rar_path,speed '重要函数调用
Else
msg2=MsgBox ("请注意最大值要大于最小值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"是否重新输入",1,title)
If msg2=1 Then input() End If
End If
Else
msg1=MsgBox ("您输入的路径不正确"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"是否重新输入",1,title)
If msg1=1 Then input() End If
End If
End Function
Function code(num1,num2,rar_path,speed)
Select Case speed
Case "1"
import 1,num1,num2,rar_path
Case "2"
import 2,num1,num2,rar_path
Case "3"
import 3,num1,num2,rar_path
Case "4"
import 4,num1,num2,rar_path
Case "5"
import 5,num1,num2,rar_path
End Select
End Function
Function import(number,num1,num2,rar_path)
On Error Resume Next
Dim cipher(100),count(100),Result(100)
pathname=fso.getbasename(rar_path)
winrar="C:\PROGRA~1\WinRAR\WinRAR.exe"
For i=1 To number
If i = 1 Then count(i) = num1 Else count(i) = (Int(num2*(i-1)/number)+1) End If
Next
For counter = num1 To Int(num2/number)
For j=1 To number
cipher(j)=Array(count(j))
Result(j)=WshShell.Run (winrar&" e -inul -p"&cipher(j)(0)&" "&rar_path&" "&pathname&"\",1,true)
if Result(j) = 0 Then
MsgBox "★密码破解成功★"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"密码:"&cipher(j)(0),,title
wscript.quit
end If
count(j)=count(j)+1
Next
Next
End Function
input()