我正在尝试打印保存在 Windows 注册表中的网络历史记录,但遇到了麻烦。
我有两个功能。一是转换二进制文本,二是获取实际数据。
这是我所拥有的:
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] 没有更多可用数据
指向指导值。
我认为这就是我卡住的地方。我很难找到错误,因为它只是被抛出到异常代码中,因此没有给我任何反馈。
请帮忙!!!
编辑:从我挖掘的内容来看,这可能是由于在 64 位系统上运行 32 位 Python 所致。不过还在挖。