0

Windows レジストリに保存されているネットワーク履歴を印刷しようとしていますが、問題が発生しています。

私には2つの機能があります。1 つはバイナリ テキストを変換し、2 番目は実際のデータを取得します。

ここに私が持っているものがあります:

def val2addr(val):
    addr = ""
    for ch in val:
        addr += ("%02x "% ord(ch))
    addr = addr.strip(" ").replace(" ", ":")[0:17]
    return addr

def printNets():
    net = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"
    key = OpenKey(HKEY_LOCAL_MACHINE, net)
    print key
    print '\n[*] Networks You have Joined.'
    for i in range(100):
        try:
            guid = EnumKey(key, i)
            netKey = OpenKey(key, str(guid))
            (n, addr, t) = EnumValue(netKey, 5)
            macAddr = val2addr(addr)
            netName = str(name)
            print '[+] ' + netName + ' ' + macAddr
            CloseKey(netKey)
        except:
            break

エラーはこのguid値にあると思います:

for i in range(100):
    try:
        guid = EnumKey(key, i)
        netKey = OpenKey(key, str(guid))
        (n, addr, t) = EnumValue(netKey, 5)

「try」サブコードを単独で実行すると、次のようにスローされます。

[エラー 259] データがありません

ガイド値を指しています。

それが私が立ち往生しているところだと思います。エラーがexceptコードにスローされるだけで、フィードバックが返されないため、エラーを見つけるのに苦労しています。

助けてください!!!

編集:私が掘り下げていることから、64ビットシステムで32ビットPythonを実行していることが原因である可能性があります。それでも掘り下げます。

4

1 に答える 1