I have a .bin file, and I want to simply byte reverse the hex data. Say for instance @ 0x10 it reads AD DE DE C0, want it to read DE AD C0 DE.

I know there is a simple way to do this, but I am am beginner and just learning python and am trying to make a few simple programs to help me through my daily tasks. I would like to convert the whole file this way, not just 0x10.

I will be converting at start offset 0x000000 and blocksize/length is 1000000.

EDIT:

here is my code, maybe you can tell me where i am messing up.

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()

how would i go about coding it to byte reverse from CDAB TO ABCD? if it helps any the file is exactly 16MB

有帮助吗?

解决方案

You can just swap the bytes manually like this:

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])
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top