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を実行していることが原因である可能性があります。それでも掘り下げます。