Skimmed the landing page, original paper. Courgette infers program's structure for smarter diffing. My half-baked notion is somewhere in between.
The actual binary patching magic happens here: https://github.com/JetBrains/intellij-community/tree/master/...