Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. import sys
  4. import struct
  5.  
  6.  
  7. def main():
  8. # Produce a file with 45899235*repeats of zero bytes
  9.  
  10. if len(sys.argv) <= 1:
  11. print('Usage zero_bz2.py filename [repeats]')
  12. return
  13.  
  14. filename = sys.argv[1]
  15.  
  16. repeats = 2**10
  17. if len(sys.argv) > 2:
  18. repeats = int(sys.argv[2])
  19.  
  20. header = b'\x42\x5a\x68\x39'
  21. block = b'\x31\x41\x59\x26\x53\x59\x0e\x09\xe2\xdf\x01\x5f\x8e\x40\x00\xc0\x00\x00\x08\x20\x00\x30\x80\x4d\x46\x42\xa0\x25\xa9\x0a\x80\x97'
  22.  
  23. block_crc = int.from_bytes(block[6:10], 'big')
  24. footer_magic = b'\x17\x72\x45\x38\x50\x90'
  25.  
  26. def compute_stream_crc(block_crc, repeats):
  27. stream_crc = 0
  28. for _ in range(repeats):
  29. stream_crc = block_crc ^ ((stream_crc << 1) | (stream_crc >> 31))
  30. return stream_crc & 0xffffffff
  31.  
  32. stream_crc = compute_stream_crc(block_crc, repeats)
  33.  
  34. with open(filename, 'wb') as f:
  35. f.write(header)
  36. for _ in range(repeats):
  37. f.write(block)
  38. f.write(footer_magic)
  39. f.write(stream_crc.to_bytes(4, byteorder='big'))
  40.  
  41.  
  42. if __name__ == '__main__':
  43. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement