吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12159|回复: 108
收起左侧

[Python 转载] 获取Windows电脑WiFi密码

  [复制链接]
Cookiesfly 发表于 2021-7-8 09:09
本帖最后由 Cookiesfly 于 2021-7-8 23:11 编辑

学习python练手,脚本方便获取电脑里存储过的所有WiFi密码,其原理是自动化"netsh wlan show profiles"的查询过程,后通过正则匹配获取
[Python] 纯文本查看 复制代码
# subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值
import subprocess
import re

# 用于判断OS的语言
import locale
loc_lang = locale.getdefaultlocale()
# print(loc_lang[0])

# 代码中用到的正则匹配模式字符串,提取出来以便不同语言系统使用,默认支持中文英文,其他语言需要更改匹配语句
if loc_lang[0] == "zh_CN":
    re_pattern = ["所有用户配置文件 : (.*)\r", "安全密钥               : 不存在", "关键内容            : (.*)\r"]
else:
    re_pattern = ["All User Profile     : (.*)\r", "Security key           : Absent", "Key Content            : (.*)\r"]

# 如果 capture_output 设为 true,stdout 和 stderr 将会被捕获
cmd_output = subprocess.run(["netsh", "wlan", "show", "profiles"], capture_output=True).stdout.decode('gbk')
# print(cmd_output)
wifi_names = (re.findall(re_pattern[0], cmd_output))
# print(wifi_names)
wifi_list = []
if len(wifi_names) != 0:
    for name in wifi_names:
        # 每一个wifi的信息存储在一个字典里
        wifi_profile = {}
        profile_info = subprocess.run(["netsh", "wlan", "show", "profiles", name],
                                      capture_output=True).stdout.decode('gbk')
        # print(profile_info)
        # 判断wifi密码是否存储在windows计算机里,不存在则忽略
        if re.search(re_pattern[1], profile_info):
            continue
        else:
            wifi_profile["ssid"] = name
            # 密码存在时,加上命令参数“key=clear”显示wifi密码
            profile_info_pass = subprocess.run(["netsh", "wlan", "show", "profiles", name, "key=clear"], 
                                    capture_output=True).stdout.decode('gbk')
            password = re.search(re_pattern[2], profile_info_pass)
            # print(password)
            if not password:
                wifi_profile["password"] = None
            else:
                wifi_profile["password"] = password[1]
        wifi_list.append(wifi_profile)

for i in range(len(wifi_list)):
    print(wifi_list[i])

结果

结果

免费评分

参与人数 14吾爱币 +14 热心值 +11 收起 理由
okspace + 1 + 1 谢谢@Thanks!
xmj + 1 我很赞同!
zhang176 + 1 + 1 我很赞同!
zwq0906 + 1 我很赞同!
lovevray + 1 + 1 我很赞同!
zxy2000 + 1 热心回复!
Reer + 1 + 1 热心回复!
18839137536 + 1 谢谢@Thanks!
zz26626129 + 1 + 1 我很赞同!
chinabrz + 1 + 1 用心讨论,共获提升!
zzkw + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
LittleFlyDragon + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
jfy168 + 1 这是个好货。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kumamiko 发表于 2021-7-15 16:24
本帖最后由 kumamiko 于 2021-7-15 16:31 编辑

我之前拿powershell写了一个,思路一样,netsh 命令+正则

[PowerShell] 纯文本查看 复制代码
(netsh wlan show profiles) | Select-String "\:(.+)$" | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name="$name" key=clear)}  | Select-String "(关键内容|Key Content)\W+\:(.+)$" | %{$pass=$_.Matches.Groups[2].Value.Trim(); $_} | %{ [pscustomobject]@{ '名称'=$name;'密码'=$pass }}


用了很多管道……

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
jakenlian + 1 + 1 热心回复!
lorzl + 1 + 1 怎么使用啊,请问!
qwertyuiop1822 + 1 + 1 真不错

查看全部评分

 楼主| Cookiesfly 发表于 2021-7-9 10:03
hj170520 发表于 2021-7-9 08:15
第一次 看到这个包的使用。

这个大体的思路是需要买些什么书来看吗?

我是这么干的 想要实现什么功能,然后搜索查找相关资料想办法实现
之前也没用过这个包
key_user 发表于 2021-7-8 09:25
查询所有储存用代码可以,单个的就看wifi属性就行了
我懂 发表于 2021-7-8 09:29
谢谢楼主分享,好好学习一下
any_0531 发表于 2021-7-8 09:31
感谢分享,虽然看不懂
gaoxugx 发表于 2021-7-8 09:33
厉害,支持
luxingyu329 发表于 2021-7-8 09:34
不错,我还没有学到这么高深,等能够看明白的时候学习一下
baggio1024 发表于 2021-7-8 09:36
谢谢楼主分享~~~~~
我喝酸奶不舔盖 发表于 2021-7-8 09:47
看你这么辛苦 还是赞一个吧
宜城小站 发表于 2021-7-8 09:47
xp系统下可以看到
shenhuyan 发表于 2021-7-8 09:48
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-11 04:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表