python-错误需要一个类似字节的对象,而不是'int'

时间:2019-07-24 10:45:24

标签: python-3.x int

我已经阅读了许多答案和文档,但是我不明白问题所在。

在这段代码中,我没有放置真正的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'

1 个答案:

答案 0 :(得分:0)

错误只是告诉您binascii.hexlify(input)想要二进制数据作为输入。 regHash[0xc]仅返回一个整数,而不是二进制数据。

请参见docs

  

binascii。 hexlify (数据)

     

返回二进制数据的十六进制表示形式。数据的每个字节都转换为相应的2位十六进制表示形式。因此,返回的字节对象的长度是数据长度的两倍。

正确的输入例如可以是regHash本身,也可以是其他任何二进制数据。 对于任何其他帮助,您可能需要解释该代码应该执行的操作以及原因。