使用Python解密Windows无线密码

使用Python解密Windows无线密码,python,encryption,wireless,Python,Encryption,Wireless,我正在尝试使用Python解密存储在配置文件xml文件中的Windows无线密码。我遇到了一个例子,它给出了如何使用Python的win32crypt模块调用Windows来实现这一点。我的问题是,我获取的键在指定状态下无效,需要使用LocalSystem运行它 即使以管理员身份运行cmd.exe,也会出现该错误。这里是您需要了解一些Windows的地方,作为Windows n00b,我不知道:LocalSystem帐户与管理员权限不同。为了使用LocalSystem帐户运行cmd.exe,您需

我正在尝试使用Python解密存储在配置文件xml文件中的Windows无线密码。我遇到了一个例子,它给出了如何使用Python的win32crypt模块调用Windows来实现这一点。我的问题是,我获取的
键在指定状态下无效,需要使用LocalSystem运行它

即使以管理员身份运行cmd.exe,也会出现该错误。这里是您需要了解一些Windows的地方,作为Windows n00b,我不知道:LocalSystem帐户与管理员权限不同。为了使用LocalSystem帐户运行cmd.exe,您需要安装一个名为PsTools的Microsoft软件包。PsTools内部有一个名为PsExec的程序,它有点像Un*x上的sudo。只需下载上面Microsoft TechNet页面底部的zip链接,然后将其解压缩到您可以找到的地方

要使用PsExec,请以管理员身份打开cmd.exe(打开屏幕左下角的“开始”菜单,在搜索框中键入cmd.exe,然后按Ctrl+Shift+Enter以管理员身份运行它)。在打开的“用户帐户控制”对话框中点击“继续”。在打开的命令shell中,导航到解压PsTools的目录。现在运行“psexec.exe/s/i cmd.exe”。同意PsTools的EULA后,PsTools应打开一个新的cmd.exe shell窗口 作为本地系统运行

有没有一种方法可以避免这个错误,而不必像博文中所说的那样使用
psexec.exe
?可能使用CryptoPy或PyCrypto

作为参考,我检索到的加密密码是Windows Vista配置文件xml文件中的keyMaterial密钥

我正在使用的代码:

导入win32crypt
mykey='01000000D08C9DDF…'#308个字符长
binout=[]
对于范围内的i(len(mykey)):
如果i%2==0:
追加(chr(int(mykey[i:i+2],16)))
pwdHash=''.join(binout)
输出=win32crypt.CryptUnprotectData(pwdHash,无,无,无,0)
打印“十六进制:”,“”。连接([%02X”%ord(字符)用于输出[1]]中的字符)
打印“ascii:”,输出[1]

提前感谢。

如果您需要本地系统权限,为什么不要求您的系统管理员授予您本地系统权限

顺便说一句,不要为从十六进制到二进制的复杂转换而烦恼。只要做:

In [5]: '01000000D08C9DDF'.decode('hex')
Out[5]: '\x01\x00\x00\x00\xd0\x8c\x9d\xdf'