我已经阅读了许多答案和文档,但是我不明白问题所在。
在这段代码中,我没有放置真正的HexRegHash,因为我认为它很明显。 这是我的代码
HexRegHash= '0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF0000000000000F3200ACDF'
RegHash = binascii.unhexlify(HexRegHash)
UsernameOffset = int(binascii.hexlify(RegHash[0xc]), 16) + 0xcc
Username = RegHash[UsernameOffset:UsernameOffset+UsernameLength].replace('\x00','')
print('Username (offset 0xc): ' + Username + "\n")
这是我的错误。
File "hash2.py", line 94, in <module>
UsernameOffset = int(binascii.hexlify(RegHash[0xc]), 16) + 0xcc
TypeError: a bytes-like object is required, not 'int'
答案 0 :(得分:0)
错误只是告诉您binascii.hexlify(input)
想要二进制数据作为输入。 regHash[0xc]
仅返回一个整数,而不是二进制数据。
请参见docs:
binascii。 hexlify (数据)
返回二进制数据的十六进制表示形式。数据的每个字节都转换为相应的2位十六进制表示形式。因此,返回的字节对象的长度是数据长度的两倍。
正确的输入例如可以是regHash本身,也可以是其他任何二进制数据。 对于任何其他帮助,您可能需要解释该代码应该执行的操作以及原因。