parik

Checksum Calculation

Mar 8th, 2019
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.61 KB | None | 0 0
  1. import sys
  2. from struct import unpack_from
  3.    
  4. with open(sys.argv[1], mode='rb') as file:
  5.     content = file.read()
  6.     end = 0
  7.  
  8.     # Find the offset of 'END\0'
  9.     for i in range(len(content), 0, -1):
  10.         if unpack_from("<3s", content, i-3)[0] == 'END'.encode('ascii'):
  11.             end = i - 7
  12.             break
  13.  
  14.     data = list(content[:end])
  15.        
  16.     # Set save size in bytes to default for checksum calculation
  17.     data[4] = 0x42
  18.     data[5] = 0x2E
  19.     data[6] = 0x1E
  20.     data[7] = 0x00
  21.    
  22.     checksum = 0
  23.     for byte in data:
  24.         checksum += byte
  25.  
  26.     print("%X" % checksum)
Add Comment
Please, Sign In to add comment