微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试制作一个 wifi 蛮力破解器,但我正面临这个缩进错误

如何解决我正在尝试制作一个 wifi 蛮力破解器,但我正面临这个缩进错误

所以我正在尝试制作一个功能性的蛮力破解器来获得乐趣,而不使用 hashcat 或其他任何东西来测试我自己的知识,我的目标是制作一个代码,当我输入 wifi 名称时连接我,而不是输入我把密码改成蛮力破解它。这在理论上可行吗?这是我的代码

    import os
import random
import string

# function to establish a new connection
def createNewConnection(name,SSID,password):
    config = """<?xml version=\"1.0\"?> 
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> 
    <name>"""+name+"""</name> 
    <SSIDConfig> 
        <SSID> 
            <name>"""+SSID+"""</name> 
        </SSID> 
    </SSIDConfig> 
    <connectionType>ESS</connectionType> 
    <connectionMode>auto</connectionMode> 
    <MSM> 
        <security> 
            <authEncryption> 
                <authentication>WPA2PSK</authentication> 
                <encryption>AES</encryption> 
                <uSEOneX>false</uSEOneX> 
            </authEncryption> 
            <sharedKey> 
                <keyType>passphrase</keyType> 
                <protected>false</protected> 
                <keyMaterial>"""+password+"""</keyMaterial> 
            </sharedKey> 
        </security> 
    </MSM> 
</WLANProfile>"""
    command = "netsh wlan add profile filename=\""+name+".xml\""+" interface=Wi-Fi"
    with open(name+".xml",'w') as file:
        file.write(config)
    os.system(command)

# function to connect to a network
def connect(name,SSID):
    command = "netsh wlan connect name=\""+name+"\" ssid=\""+SSID+"\" interface=Wi-Fi"
    os.system(command)

# function to display avavilabe Wifi networks
def displayAvailableNetworks():
    command = "netsh wlan show networks interface=Wi-Fi"
    os.system(command)


# display available netwroks
displayAvailableNetworks()

# input wifi name and get password
chars = string.printable
chars_list = list(chars)
name = input("Name of Wi-Fi: ")
while name != "Example name that no wifi will probably be":
    password = random.choices(chars_list,k=(len(password)))
    print("<===============|"+ str(password)+ "|===============>")
    if (password == list(password)):
        print("Your password is: "+ "".join(password))

    # establish new connection
    createNewConnection(name,name,password)

    # connect to the wifi network
    connect(name,name)

如果这结束工作我会很高兴,因为我花了几天时间试图找到一个真正有效的蛮力但找不到任何东西,如果这在理论上不起作用,有人可以指导我找到类似目的的源代码吗?谢谢!

错误消息现在说密码没有在 k=len(password) 行中定义

解决方法

我认为你的问题在这里:

if (password == list(password)):
        print("Your password is: "+ "".join(password))

改成

if (password == list(password)):
    print("Your password is: "+ "".join(password))
,

理论上,这样的事情是可行的。可能可以使用 python 连接到 WiFi 网络。以蛮力方式尝试多个密码也是可能的,但如果您没有单词列表或至少知道密码的长度,那绝对不是很有效。

关于您的代码:

缩进错误在这里(任何 linter 都会告诉你):

while name != "Example name that no wifi will probably be":
    password = random.choices(chars_list,k=(len(password)))
    print("<===============|"+ str(password)+ "|===============>")
if (password == list(password)):
        print("Your password is: "+ "".join(password))
        

# establish new connection
createNewConnection(name,name,password)

# connect to the wifi network
connect(name,name)

应该

while name != "Example name that no wifi will probably be":
    password = random.choices(chars_list,k=(len(password)))
    print("<===============|"+ str(password)+ "|===============>")
    if (password == list(password)):
        print("Your password is: "+ "".join(password))

    # establish new connection
    createNewConnection(name,password)

    # connect to the wifi network
    connect(name,name)

我建议您使用除 name != "Example name that no wifi will probably be" 为您的循环。它应该是某种被检查的 connected 变量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。