Method and apparatus for identifying the existence of differences between two files
First Claim
1. A method of creating a representation of a personal computer file, the method comprising:
- a. for each of at least some of a plurality of portions of the personal computer file;
exclusive oring said portion with a different one of a plurality of first portions of a work area to produce a result; and
storing the result in place of said different one of the plurality of first portions of the work area;
b. for each of a plurality of second portions of the work area;
retrieving a portion of a table responsive to said second portion of the work area; and
storing the portion of the table retrieved in place of said second portion of the work area;
c. following step b, dividing at least a portion of the work area into a first sub portion comprising a at least one third portion and a second sub portion comprising at least one fourth portion;
d. exclusive oring each of the third portions of the work area with the fourth portions of the work area; and
e. providing the first sub portion as the representation of the personal computer file.
14 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus identifies the existence of differences between two files on a personal computer, such as two versions of a Windows registry file. Portions of each of the files are hashed into a four byte value per portion to produce a set of hash results, and the set of hash results is combined with a four byte size of the portion of the file from which the hash was generated to produce a signature of each file. If the two files are different versions of a Windows registry file, the portion of the file hashed are the values of the Windows registry file. If the two files are different, there is a high probability that the signatures of the two files will be different. The signatures may be compared to provide a strong indicator whether the two files are different. Each four-byte hash from one file can be compared against its counterpart from the other file to determine the portion or portions of the files that differ. Stored portions of one file that are determined to differ may be inserted into corresponding portions of the other file to cause the two files to be equivalent.
-
Citations
18 Claims
-
1. A method of creating a representation of a personal computer file, the method comprising:
-
a. for each of at least some of a plurality of portions of the personal computer file;
exclusive oring said portion with a different one of a plurality of first portions of a work area to produce a result; and
storing the result in place of said different one of the plurality of first portions of the work area;
b. for each of a plurality of second portions of the work area;
retrieving a portion of a table responsive to said second portion of the work area; and
storing the portion of the table retrieved in place of said second portion of the work area;
c. following step b, dividing at least a portion of the work area into a first sub portion comprising a at least one third portion and a second sub portion comprising at least one fourth portion;
d. exclusive oring each of the third portions of the work area with the fourth portions of the work area; and
e. providing the first sub portion as the representation of the personal computer file. - View Dependent Claims (2, 3, 4, 5, 6, 11, 12)
step a is performed for a quantity of portions of the personal computer file equal to a quantity of first portions of the work area;
step b is performed for substantially all of the second portions of the work area; and
step a is performed after Step b for at least one portion of the personal computer file not used in the prior instance of step a.
-
-
4. The method of claim 3 wherein a first iteration of steps c and d are performed on the at least the portion of the work area substantially comprising the entire work area;
- and
at least one subsequent iteration of steps c and d is performed, and for each subsequent iteration, the at least the portion of the work area for said subsequent iteration is one of the first sub portion and the second sub portion of the work area.
- and
-
5. The method of claim 1 additionally comprising selecting the table from a plurality of tables.
-
6. The method of claim 5 wherein the table is selected from the plurality of tables is selected using a first order of the plurality of tables, the first order different from a second order used to select the table at a prior time.
-
11. The system of claim 1 additionally comprising a table identifier coupled to the translator for selecting the table from a plurality of tables and providing an identifier of the selected table to the translator.
-
12. The method of claim 5 wherein the table identifier selects the table from the plurality of tables using a first order of the plurality of tables, the first order different from a second order used to select the table at a prior time.
-
7. A system for creating a representation of a personal computer file, the system comprising:
-
a. an exclusive or operator having an coupled to receive at least some of the plurality of portions of the personal computer file and an input/output coupled to a work area, the exclusive or operator for, for each of at least some of a plurality of portions of the personal computer file, exclusive oring said portion with a different one of a plurality of first portions of the work area to produce a result, and for, for each of at least some of a plurality of portions of the personal computer file, storing the result in place of said different one of the plurality of first portions of the work area;
b. a translator having an input/output coupled to the work area, the translator for, for each of a plurality of second portions of the work area, retrieving a portion of a table responsive to said second portion of the work area; and
for each of a plurality of second portions of the work area, storing the portion of the table retrieved in place of said second portion of the work area; and
c. wherein the exclusive or operator is additionally for, following operation of translator, dividing at least a portion of the work area into a first sub portion comprising a at least one third portion and a second sub portion comprising at least one fourth portion and exclusive oring each of the third portions of the work area with the fourth portions of the work area; and
providing at an output the first sub portion as the representation of the personal computer file.- View Dependent Claims (8, 9, 10)
the exclusive or operator performs the functions in paragraph a for a quantity of portions of the personal computer file equal to a quantity of first portions of the work area;
the translator performs the functions in paragraph b for substantially all of the second portions of the work area; and
the exclusive or operator performs the functions in paragraph a after the translator performs the functions in paragraph b for at least one portion of the personal computer file not used in the prior performance of the functions in paragraph a.
-
-
10. The system of claim 9 wherein the exclusive or operator performs a first iteration of the functions in paragraph c on the at least the portion of the work area substantially comprising the entire work area;
- and
the exclusive or operator performs the functions in paragraph c in at least one subsequent iteration, and for each subsequent iteration, the at least the portion of the work area for said subsequent iteration is one of the first sub portion and the second sub portion of the work area.
- and
-
13. A computer program product comprising a computer useable medium having computer readable program code embodied therein for creating a representation of a personal computer file, the computer program product comprising computer readable program code devices configured to cause a computer to:
-
a. for each of at least some of a plurality of portions of the personal computer file;
exclusive or said portion with a different one of a plurality of first portions of a work area to produce a result; and
store the result in place of said different one of the plurality of first portions of the work area;
b. for each of a plurality of second portions of the work area;
retrieve a portion of a table responsive to said second portion of the work area; and
store the portion of the table retrieved in place of said second portion of the work area;
c. following the computer readable program code devices in paragraph b, divide at least a portion of the work area into a first sub portion comprising a at least one third portion and a second sub portion comprising at least one fourth portion;
d. exclusive or each of the third portions of the work area with the fourth portions of the work area; and
e. provide the first sub portion as the representation of the personal computer file. - View Dependent Claims (14, 15, 16, 17, 18)
the computer readable program code devices of paragraph a are performed for a quantity of portions of the personal computer file equal to a quantity of first portions of the work area;
the computer readable program code devices of paragraph b are performed for substantially all of the second portions of the work area; and
the computer readable program code devices of paragraph a are performed after the computer readable program code devices of paragraph b for at least one portion of the personal computer file not used in the prior performance of the computer readable program code devices of paragraph a.
-
-
16. The computer program product of claim 15 wherein a first iteration of the computer readable program code devices of paragraphs c and d are performed on the at least the portion of the work area substantially comprising the entire work area;
- and
at least one subsequent iteration of the computer readable program code devices of paragraphs c and d is performed, and for each subsequent iteration, the at least the portion of the work area for said subsequent iteration is one of the first sub portion and the second sub portion of the work area.
- and
-
17. The computer program product of claim 13 additionally comprising computer readable program code devices configured to cause a computer to select the table from a plurality of tables.
-
18. The computer program product of claim 17 wherein the table is selected from the plurality of tables is selected using a first order of the plurality of tables, the first order different from a second order used to select the table at a prior time.
Specification