Implementations provide a technology for generating a minimum delta
between at least two program binaries. An implementation is given a
source program (S) in a binary format and a target program (T) in a
binary form. It constructs control flow graphs (CFGs) of each. It matches
common blocks of the S's CFGs and T's CFGs. The blocks are matched based
upon their content and their local neighborhoods. In addition, the
register renaming problems is solved so that blocks can be fairly
compared. This implementation produces an intermediate output, which is
the content of unmatched blocks. It generates a set of edge edit
operations for merging the unmatched blocks into S. The combination of
the unmatched blocks and the edit operations is the delta. To patch S to
produce a reconstructed copy of T, the delta is merged with S.