【发布时间】:2015-06-27 23:24:03
【问题描述】:
我使用的是 Windows 8.1,它没有工具(带有 GUI)来管理 wifi 网络配置文件。所以我正在写一篇对我有帮助的文章。我做了一些谷歌搜索,找到了Managed Wifi API,并在教程的帮助下,我设法将这段代码放在一起:
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
{
string profileName = profileInfo.profileName;
ListViewItem item = new ListViewItem(profileName);
string profileXML = wlanIface.GetProfileXml(profileInfo.profileName);
XmlDocument doc = new XmlDocument();
doc.LoadXml(profileXML);
var NSManager = new XmlNamespaceManager(doc.NameTable);
NSManager.AddNamespace("d", "http://www.microsoft.com/networking/WLAN/profile/v1");
XmlNode node = doc.DocumentElement.SelectSingleNode("//d:WLANProfile/d:MSM/d:security/d:authEncryption/d:authentication", NSManager);
item.SubItems.Add(node.InnerText);
Profiles.Items.Add(item);
}
}
获取保存的网络配置文件列表并将它们打印到 ListView。我有两个问题。一种是如何使用 Managed Wifi API 获取完整的个人资料信息?因为我唯一能得到的是个人资料名称。该站点中没有文档。
第二个问题是,由于我无法使用 API 获取完整的网络信息,所以我使用 API 以 XML 格式打印配置文件信息,然后解析 XML 并读取它。 XML 示例:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>MEDO PUB</name>
<SSIDConfig>
<SSID>
<hex>4D45444F20505542</hex>
<name>MEDO PUB</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>manual</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>true</protected>
<keyMaterial>someReallyLongStringLike500+chars</keyMaterial>
</sharedKey>
</security>
</MSM>
</WLANProfile>
我需要获取 wifi 密码,但我认为它是加密的。如何获取实际密码或解密加密密码?
更新:我找到了两个链接:Exposing the WiFi Password Secrets 和 [C++] Dump wireless passwords,但我不确定它们是否有效,或者不确定如何在 C# 中实现它们。
【问题讨论】:
-
忘记破解密码。您可以使用以下网页上的代码递归添加 xml:stackoverflow.com/questions/1596163/…
-
@jdweng 我不确定你的意思。我不想读取 XML 值。我想解密加密或“散列”的 XML 值,即 wifi 密码。
-
这是一个密码,不能被解密。
-
@jdweng 第三方应用程序可以解密密码,例如WinFi,或以某种方式访问它。
-
Possible duplicate 另外,“Windows 8.1 没有管理 wifi 网络配置文件的工具”——这种说法是不正确的。您可以使用 cmd 工具 netsh 执行此操作。以管理员身份打开 cmd 窗口并输入:
netsh wlan show profiles,然后从中获取密码:netsh wlan show profile "<a profile from the last step> key=clear
标签: c# xml encryption wifi wlanapi