字节反向十六进制与python

时间:2013-01-26 06:01:25

标签: byte reversing

我有一个.bin文件,我想简单地反转十六进制数据。比如说@ 0x10它显示为AD DE DE C0,希望它读取DE AD C0 DE

我知道有一种简单的方法可以做到这一点,但我是初学者,只是学习python,我正在尝试制作一些简单的程序来帮助我完成日常工作。我希望以这种方式转换整个文件,而不仅仅是0x10

我将在起始偏移量0x000000进行转换,并且blocksize / length为1000000。

编辑:

这是我的代码,也许你可以告诉我在哪里弄乱。

def main():
    infile = open("file.bin", "rb")
    new_pos = int("0x000000", 16)
    chunk = int("1000000", 16)
    data = infile.read(chunk)
    save(data)

def save(data):
    with open("reversed", "wb") as outfile:
        outfile.write(data)

main()

我如何将其编码为从CDAB到ABCD的字节反转? 如果它有助于任何文件正好是16MB

1 个答案:

答案 0 :(得分:0)

你可以像这样手动交换字节:

with open("file.bin", "rb") as infile, open("reversed", "wb") as outfile:
  data = infile.read()
  for i in xrange(len(data) / 2):
    outfile.write(data[i*2+1])
    outfile.write(data[i*2])