我想做
key = struct.unpack('L', bytes_key)[0]
其中bytes_key是b'\xa6\x0b\xddE'
,它在我的x32机器上运行正常,但每当我尝试在x64机器上执行它时,它都会让我出错。
Traceback (most recent call last):
File "unpacker.py", line 42, in <module> decompile(obj[1]) File "unpacker.py", line 13, in decompile f.write(decrypt_record(arg).content) File "crypt.py", line 61, in crypt.decrypt_record (crypt.c:2447) record.checksum = decrypt(record.checksum, checksum_key)
File "crypt.py", line 36, in crypt.decrypt (crypt.c:1821) key = struct.unpack('L', bytes_key)[0] struct.error: unpack requires a bytes object of length 8
答案 0 :(得分:1)
您可以尝试使用&#34; =&#34;在&#34; L&#34;:
之前...
struct.unpack("=L", bytes_key)[0]
...
根据documentation,它说:
标准尺寸仅取决于格式字符;请参阅格式字符部分中的表。 请注意&#39; @&#39;之间的区别和&#39; =&#39;:都使用本机字节顺序,但后者的大小和对齐是标准化的。