WinRAR密码破解(精)

WinRAR是大家常用的压缩工具,它的加密功能更是受到大家的青睐;现在我就来简单的教

教大家破解加密的压缩文档(rar,zip)

恩,先把代码给大家把(这是经我研究几天的成果,希望能对大家有所帮助)

''''''''''''''''''''''''''''''代码如下

'本段程序由方窗原创,仅供学习参考,如果转帖请注明作者...
'方窗主页: http://blog.csdn.net/fangchuang

'方窗QQ  : 353237850
'大家不妨也尝试着自己做做,或修改本代码。
'大家注意路径这个代码中输入的路径不能含有空格(包括名字)否者会找不到路径。
'为了解决速度问题,采用了分段破译,具体请大家自己体会啦(精华哦!~~~)
'---title是我做的标题,在输出输入框中你会发现它。
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
'---这是个用于衔接的函数,讲主题与输入框挂钩,在input()函数中你能发现它,这个选择句函数肩负的丢用最重要的函数结构import(形参...)
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
'---所有的关键都是为了调用下部函数做的铺垫,你能发现我利用For循环来定义我的数组,同时对每个数组也执行相应的动作(很方便,建议大家学会)
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()

''''''''''''''''''''''''''''''代码结束

下面我们讨论下关于破译WinRAR的特点:

我先声明下,WinRAR可以说现在还没有人能够秒破,至于听说如美国情报机构,完成了对RAR文件的秒破,还有在台湾一论坛上看到,有人提到RAR文件被人秒破过,我不太相信,我觉得美国情报局这样的机构,有可能可以秒破,但应该是建立在已经通过非常规手段,跑出一份对应表,只做查询密码才有可能做到。

无法秒破也就意味着要花费大量的时间去破译一个加密的压缩文档(破译一个10多位的密码数字和字母组合的大概要几年)

现在大家普遍的技术都是穷举破解(暴力破解)

至于我的这段小代码也属于穷举法,我这里因为时间关系就没做字母穷举破解了(目前这段代码只实现了数字穷举),不过我这里也给大家提供下思路。

一.至于字母的穷举大多的破译器用的都是字典爆破法:

    就是事先将一些可能性较大的一些字符写入一些文档里,破译时再到这些特定的文档里去扫描字符(字符为一行一行的),将这些字符一一的去尝试(所谓暴力)。

这里我可以介绍大家一款软件“RAR Password Recovery”,这个软件很好的用到了字典爆破的方法破译字母,特别是在这个软件的文件夹下还有个已经做好的字典“english”,大家不妨试试。

二.这里我也说说我的思路:

    大家完全可以利用ASCII字符集,这可是一个非常丰富的字符资源,不仅能解决字母,甚至是符号。下面我就和大家说说把。

    以上的代码用到了几个重要的循环来解决复杂的动作,同样字符也可以用到这样的循环;chr(),asc();

大家应该不陌生把,这些可以实现字符与数字的转换,下面你只要做的就是,将这些数字段处理好就行了。

    例如:

Dim MyChar
MyChar = Chr(65)    '返回 A。
MyChar = Chr(97)    '返回 a。
MyChar = Chr(62)    '返回 >。
MyChar = Chr(37)    '返回 %。

大家只需要将这些键控代码用循环来控制就行了,如果第一位循环完了没有完成密码破译,就在整个循环体的前面直接连接一个字符(大家最好是把这个字符也做个内循环),再次进行大的循环,就这样依次下去,终会把密码破译出来,只是时间的问题了。

*这里提醒大家,我不会帮大家做这段破译字符的代码,思路已经给大家了,主要是靠大家自己完成,目的也只有一个,提高大家的编程能力,这对你我都有好处。如果实在要问,我告诉大家,其实整体的思路已经融入到了以上提供给大家的源码里,只要大家稍微修改是能够做出完美的破译工具的,如果大家有什么更好的方法或建议,欢迎与我讨论,这里也谢谢大家的支持。

介绍给大家个网站,也许对大家研究破译WinRAR会有帮助...

http://bbs.pediy.com/showthread.php?t=62908

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值