Python3 CryptUnprotectData() TypeError 需要一个带有缓冲区接口的对象

问题描述 投票:0回答:1

我在网上浏览一些有关 CryptUnprotectData 和 WZC 的信息。我发现了这个小脚本,用于解密 Vista 上存储的无线密码。我尝试使用Python3(它可能是为Python 2.X编写的),但它给了我:TypeError需要一个带有缓冲区接口的对象。我不太确定如何解决它。 这是简单的脚本:

    import win32crypt
    mykey = "Insert keyMaterial"
    binout = []
    for i in range(len(mykey)):
        if i % 2 == 0:
            binout.append(chr(int(mykey[i:i+2],16)))
    pwdHash=''.join(binout)

    output = win32crypt.CryptUnprotectData(pwdHash,None,None,None,0)

    print ("hex:", "".join(["%02X" % ord(char) for char in output[1]]))

    print ("ascii:", output[1])

脚本来自这里

python-3.x winapi
1个回答
-1
投票

当它需要二进制/字节数据时,您正在给它字符串/unicode 数据。

如果它是为 Python 2 编写的,那么在不进行一些修改的情况下不太可能在 Python 3 上工作。使用 Python 2(或修复它)。

© www.soinside.com 2019 - 2024. All rights reserved.