Check out IntelliJ's binary patching - it might be closer to what you want? It's based on bsdiff.
The actual binary patching magic happens here: https://github.com/JetBrains/intellij-community/tree/master/...
The actual binary patching magic happens here: https://github.com/JetBrains/intellij-community/tree/master/...
Skimmed the landing page, original paper. Courgette infers program's structure for smarter diffing. My half-baked notion is somewhere in between.