计算两个十六进制偏移之间的字节数

时间:2016-09-04 03:07:58

标签: python binary hex offset bytecode

在Python中,我试图从二进制文件中提取一些数据。我知道数据的偏移量。它们总是一样的。例如,下面写的是前4个偏移,转换后的偏移是十进制值。

  • Offset1 - 0x00000409 - 1033
  • Offset2 - 0x0000103A - 4154
  • Offset3 - 0x00001C6B - 7275
  • Offset4 - 0x0000289C - 10396

我知道每个偏移量(在第一个之后),相隔3121个小数,所以有没有办法可以跳到下一个偏移量?如何将3121小数移动到下一个偏移量?

我需要提取128个偏移量。我希望有一种方法可以动态确定偏移之间的差异(字节数)吗?

然后我可以每次获取相同的数据,使用0x100从偏移量中提取256个字符。

1 个答案:

答案 0 :(得分:1)

使用file.seek()跳过文件中的位置。在这种情况下,要转到文件中的下一个位置,您将使用file.seek(3121, 1),它相对于当前位置提前寻找3121个字节。

编辑:我没有意识到你在打开文件后改变文件位置,所以它实际上应该是2685字节,你每次都要提前搜索,以便占用你读取的256个。