Patent ID: 7058941

Claim:
A method for generating a delta between a first program binary and a second program binary, the method comprising the steps of: obtaining a first control flow graph (CFG) representation of the first binary and obtaining a second CFG representation of the second binary; comparing the first and second CFG representations to identify blocks (nominally matched blocks) that match in the first and second CFG representations, thereby identifying blocks (nominally unmatched blocks) in the second CFG representation that do not match in the first CFG representation, the comparing being based upon content of blocks being compared and augmented local neighborhoods of blocks surrounding blocks being compared, wherein a local neighborhood of a particular block consists of blocks neighboring that block in a CFG representation, but less than all the blocks in that CFG representation, and an augmented local neighborhood of that particular block consists that block's local neighborhood plus a random sampling of blocks from a substantially larger neighborhood of blocks surrounding that block, an augmented local neighborhood in a CFG representation consisting of less than all the blocks in that CFG representation; determining edit-operations that merges the unmatched blocks into the first CFG representation so that first CFG representation is substantially identical to the second CFG representation; producing a delta comprising the unmatched blocks and the edit-operations.