使用python製作一款能破解ZIP/RAR壓縮包與WIFI密碼的整合多功能工具

 

一個已經打包好的工具,有興趣的話可下載,還有機率解壓已破損的壓縮包,後期的代碼有些敏感就部公開了,只能用作使用忘記密碼後找回使用,請勿用作非法用途!

特點:

直接運行

支持多線程

自動運行,掛機

算法生成密碼字典

進度顯示,精確時間

支持RAR與WIFI破解       

使用教程:

下面以破解壓縮包爲例。WIFI破解是跑字典的,自己網上下個字典然後摸索着用吧。。。

---------------------------------------------------------------------------------------------------------------------------

首先打開軟件,界面是這個樣子的

第一步:點擊ZIP/RAR破解

       

---------------------------------------------------------------------------------------------------------------------------

第二步:在彈出的窗口選擇要破解的壓縮包,然後打開

       

---------------------------------------------------------------------------------------------------------------------------

第三步:在彈出的表單裏填寫密碼種子(這一步因爲原創算法,比較麻煩)

       

第一行:填寫種子(密碼裏可能包含的任何字符),比如:

              密碼可能是由純數字組成的,就輸入0123456789

              純小寫字母組成: abcdefghijklmnopqrstuvwxyz

              純大寫字母組成 :ABCDEFGHIJKLMNOPQRSTUVWXYZ

              包含小寫字母和數字的密碼:0123456789abcdefghijklmnopqrstuvwxyz  以此類推。

第二行,破解的起始位數,種子不多就輸入1,從計算量最小的一位開始。

第三第四行,已經知道部分密碼,可以填寫,適用於自己取的密碼然後忘記了。。。

---------------------------------------------------------------------------------------------------------------------------

最後一步:點擊確定後,選擇自動模式,或單位破解。

      

---------------------------------------------------------------------------------------------------------------------------

隨手測試下在zip與rar下的破解速度

      

 

和ARPR同臺測試一下,算法差不多,速度較之更快。

      

 

---------------------------------------------------------------------------------------------------------------------------

環境配置:

在使用前,需要先配置unrar環境

下載rarlib的庫文件,地址:http://www.rarlab.com/rar/UnRARDLL.exe

一直點確定完成rarlib的安裝,使用默認設置

配置環境變量:

-->右鍵計算機 ->  屬性 -> 高級系統設置 -> 環境變量  

-->在用戶變量區新建一個變量   名稱:       UNRAR_LIB_PATH   

                              值(默認): C:\Program Files (x86)\UnrarDLL\UnRAR.dll 

環境配置完畢,可以雙擊打開使用了

---------------------------------------------------------------------------------------------------------------------------

 

程序鏈接:https://pan.baidu.com/s/1HOh7x2-C85rLXoav6jK5Xw    提取碼:mmrt 

 

 

源代碼(最早版本)

import easygui as Eg
import random as r
import zipfile
import time




def speedtest_ds():
    time_start = time.time()
    i=0
    while True:
        i+=1
        if i>50000000:
            break
    speed_test=(50000000/(time.time()-time_start)/3200)
    speed_result=int(speed_test)
    if  speed_result <= 500:
        level = 'C-  最低級性能⊙﹏⊙'
    if  500 <= speed_result < 1000:
        level = 'C級   低級性能‘(*>﹏<*)′'
    if 1000 <= speed_result < 2000:
        level = 'B級   普通級性能 (¯(∞)¯)'
    if 2000 <= speed_result < 3000:
        level = 'B+  中階性能 (=@__@=) '
    if  3000 <= speed_result < 4000:
        level=  'A級   高階性能 "≡ (^(OO)^) ≡" '
    if 4000 <= speed_result < 5000:
        level = 'S級   發燒級性能└(^o^)┘'
    if 5000 <= speed_result <= 6000:
        level = 'S+級  超級性能(⊙o⊙)'
    if speed_result >6000 :
        level = 'SSS級 超級計算機 (*@ο@*)'
    Eg.msgbox(" 當前計算機性能等級評價: %s \n\n 流處理器單線程運算速度: %d次/S"%(level,speed_result))
    return speed_result




def zip_choice():
    while True:
        choice_use = Eg.buttonbox("歡迎使用ZIP壓縮包密碼暴力破解器!\n\n"
                                  "本破解器綠色無毒,請放心使用!\n\n"
                                  "支持多開,可成倍增加破解速度\n\n"
                                  "如果您喜歡,請支持我!!! QQ:421736951\n\n"
                                  "開始使用吧~ ≡ (^(OO)^) ≡\n\n"
                                  "在目錄中選擇zip壓縮包文件,或進行性能測試~", 'ZIP壓縮包密碼暴力破解器V1.0', ['選擇目錄', '性能測試'])
        if choice_use == '性能測試':
            speedtest_ds()
        elif choice_use == '選擇目錄':
            global path_way
            path_way = zip_file_open()
            if path_way:
                return True
        else:
            return False




def zip_file_open():
    while True:
        try:
            msg = '選擇目錄中的zip壓縮包'
            default = r'C:/'
            full_file_path = Eg.fileopenbox(msg,  default)
            zip_open = zipfile.ZipFile(str(full_file_path))
            return full_file_path
        except:
            if full_file_path != None:
                Eg.msgbox("文件格式不正確!請重新輸入")
            else:
                return False




def zip_msg_enter():
    msg = '請輸入密碼信息:'
    title = ' ZIP壓縮文件暴力破解器'
    msg_num = '①.破解密碼種子(可能包含的字母和數字,勿重複輸入):'
    msg_start = '②.破解密碼起始位數(支持1-12位):'
    while True:
        try:
            crack = Eg.multpasswordbox(msg, title,(msg_num ,msg_start))
            if crack[0]:
                if 0 < int(crack[1]) <= 12:
                    return crack
                else:
                    Eg.msgbox("解碼範圍只支持1-12位 ,請重新輸入!")
            else:
                Eg.msgbox("輸入不能爲空 ,請重新輸入!")
        except:
            if crack:
                Eg.msgbox("只能輸入數字或字符,請重新輸入!")
            else:
                break




def choice_exp():
    zip_msg = zip_msg_enter()
    seed_number= zip_msg[0]
    base_number = len(zip_msg[0])
    index_number = int(zip_msg[1])
    crack_exp = base_number ** index_number
    speed=speedtest_ds()
    ready=Eg.buttonbox("根據您的計算機性能,本次破解預計進行%s次,耗時估約%s秒\n\n"
                       "確定要進行破解嗎?"%(crack_exp,crack_exp/int(speed)),
                       'ZIP壓縮包密碼暴力破解器',['重新選擇','確定'])
    if ready == '確定':
        times = 0
        Crack_FLAG = 0
        time_start = time.time()
        zF = zipfile.ZipFile(path_way)
        while True:
            sa = []
            for i in range(index_number):
                sa.append(r.choice(seed_number))
            salt = "".join(sa)
            times += 1
            try:
                zF.extractall(pwd=salt.encode("ascii"))
                Crack_FLAG=1
            except:
               if times%10000==0:
                print("正在進行第 %d 次破解\r"%times)
               if times > (3*(base_number ** index_number)):
                    Crack_FLAG=2
            if Crack_FLAG ==1:
                time_used = int(time.time() - time_start)
                Eg.msgbox('CONGRUTUTIONS!破解成功!\n\n'
                          '密碼:%s\n\n'
                          '耗時:%d秒\n\n'
                          '平均破解速度:%d/s'
                          '嘗試破解次數:%s次\n\n' % (salt, time_used, times / time_used, times),'CRACK_SUCCESS','確定')
                break
            if Crack_FLAG==2:
                repeat = Eg.buttonbox('破解失敗!密碼很可能不爲 %d 位!\n\n'
                                      '或輸入的密碼種子缺少字符!\n\n'
                                      '請重新輸入或增加1位數繼續破解!\n\n' % int(index_number),
                                      'CRACK_ERROR',['重新輸入', '加位繼續破解'])
                if repeat == '加位繼續破解':
                    index_number+=1
                    Crack_FLAG = 0
                else:
                    break


def main():
    while True:
        if zip_choice():
            Eg.msgbox("文件導入成功!")
            choice_exp()
        else:
            break




if __name__ == '__main__':
    main()
--------------------- 
作者:qq_16620025 
來源:CSDN 
原文:https://blog.csdn.net/qq_16620025/article/details/79244263 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

更多內容請訪問我的博客 :http://bookist123.picp.net/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章