WinRAR密碼破解

WinRAR密碼破解

WinRAR是大家常用的壓縮工具,它的加密功能更是受到大家的青睞;現在我就來簡單的教

教大家破解加密的壓縮文檔(rar,zip)

恩,先把代碼給大家把(這是經我研究幾天的成果,希望能對大家有所幫助)

”””””””””””””””代碼如下

‘本段程序由方窗原創,僅供學習參考,如果轉帖請註明作者…
‘方窗主頁: [url]http://blog.csdn.net/fangchuang[/url]

‘方窗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會有幫助…
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章