0

おい、スクリプトを再構築しようとしている。Python 3 では _winreg を使用し、スクリプトは機能していましたが、Python 2 ではそれが必要で、今では次のエラーが発生します。

File "discoverNetworks.py", line 14, in printNets
guid = _winreg.EnumKey(key, i)
WindowsError: [Error 259] No more data is available

しかし、もちろん、そのフォルダーにはたくさんのファイルがあります。

これはコードです:

import _winreg
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 = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,net)
    print '\n[*] Networks You have Joined.'
    for i in range(100):
        try:
            guid = _winreg.EnumKey(key, i)
            netKey = _winreg.OpenKey(key, str(guid))
            (n, addr, t) = _winreg.EnumValue(netKey, 5)
            (n, name, t) = EnumValue(netKey, 4)
            macAddr = val2addr(addr)
            netName = str(name)
            print '[+] ' + netName + ' ' + macAddr
            _winreg.CloseKey(guid)
        except WindowsError:
            break
def main():
    printNets()
if __name__ == "__main__":
    main()

ありがとう!

4

1 に答える 1