Implementations of this invention provide a technology for generating a
minimum delta between at least two program binaries. An implementation of
this invention 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 of this invention
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. This abstract itself is not intended to
limit the scope of this patent. The scope of the present invention is
pointed out in the appending claims.