import mmap
new = '555'
pattern = b'substr1:\x00\x00'
with open('test.bin', 'r+b') as f:
mm = mmap.mmap(f.fileno(), 0)
pos = mm.find(pattern)
if pos:
mm.seek(pos + len(pattern))
mm.write(new.encode())
mm.close()
aW1wb3J0IG1tYXAKCm5ldyA9ICc1NTUnCnBhdHRlcm4gPSBiJ3N1YnN0cjE6XHgwMFx4MDAnCgp3aXRoIG9wZW4oJ3Rlc3QuYmluJywgJ3IrYicpIGFzIGY6CgltbSA9IG1tYXAubW1hcChmLmZpbGVubygpLCAwKQoKCXBvcyA9IG1tLmZpbmQocGF0dGVybikKCWlmIHBvczoKCQltbS5zZWVrKHBvcyArIGxlbihwYXR0ZXJuKSkKCQltbS53cml0ZShuZXcuZW5jb2RlKCkpCgkKCW1tLmNsb3NlKCk=