Minimum delta generator for program binaries
AssigneeMicrosoft Corporation
InventorsRamarathnam Venkatesan, Saurabh Sinha
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsRamarathnam Venkatesan, Saurabh Sinha
Estimating the term…
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.
A method for matching blocks between a first control flow graph (CFG) representation of a portion of a first program and a second CFG representation of a portion of a second program, the method comprising:
A method for matching procedures between a first control flow graph (CFG) representation of a portion of a first program and a second CFG representation of a portion of a second program, wherein a procedure comprises multiple blocks in a CFG representation, wherein each block of each procedure has its own defined sequence of executable instructions with a block's first instruction being its single entry point and its last instruction being its single exit point, the method comprising:
A method for matching of blocks in a procedure of a first control flow graph (CFG) representation of a portion of a first program between an ostensibly matching procedure of a second CFG representation of a portion of a second program, the method comprising:
Dependencies are inferred from the claim text.