However, if your change involves zeroing something out, you're back to storing the original data again.
Slightly silly idea to solve this: Hash all non-patched areas of the file to produce a key. Use the key to encrypt your XOR value. Thus the key can only be derived by someone who has either the original file, or the patched version.
Slightly silly idea to solve this: Hash all non-patched areas of the file to produce a key. Use the key to encrypt your XOR value. Thus the key can only be derived by someone who has either the original file, or the patched version.