Claims Analysis
Total Claims: 34
Claim 1
Independent Claim
125 words
A method of testing, protecting, or correcting binary code, comprising: generating, from the binary code, a control flow representation of the binary code; generating, from the binary code, a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 2
Independent Claim
125 words
A method of testing, protecting, or correcting binary code, comprising: generating, from the binary code, a control flow representation of the binary code; generating, from the binary code, a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 3
Dependent Claim
19 words
A method as claimed in claim 1, wherein such method is used to perform overflow detection, repair and test.
Claim 4
Dependent Claim
16 words
A method as claimed in claim 1, wherein such method is used to perform assertion checking.
Claim 5
Dependent Claim
16 words
A method as claimed in claim 1, wherein such method is used to perform coverage testing.
Claim 6
Dependent Claim
18 words
A method as claimed in claim 1, wherein such method is used to perform argument remediation coverage testing.
Claim 7
Dependent Claim
16 words
A method as claimed in claim 1, wherein such method is used to perform continuous testing.
Claim 8
Dependent Claim
17 words
A method as claimed in claim 1, wherein such method is used to perform bootstrap regression testing.
Claim 9
Dependent Claim
17 words
A method as claimed in claim 1, wherein such method is used to perform test path identification.
Claim 10
Dependent Claim
16 words
A method as claimed in claim 1, wherein such method is used to perform date identification.
Claim 11
Dependent Claim
17 words
A method as claimed in claim 1, wherein such method is used to perform zip code identification.
Claim 12
Dependent Claim
20 words
A method as claimed in claim 1, wherein such method is used to perform telephone number or area code identification.
Claim 13
Dependent Claim
16 words
A method as claimed in claim 1, wherein such method is used to perform currency identification.
Claim 14
Independent Claim
153 words
A method of testing, protecting, or correcting binary code, comprising: generating a control flow representation of the binary code; generating a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches; and wherein such method is used to perform date overflow and detection and further comprising the step of identifying date variables and values and wherein the software patches perform a windowing function on date values and variables.
Claim 15
Independent Claim
153 words
A method of testing, protecting, or correcting binary code, comprising: generating a control flow representation of the binary code; generating a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches; and wherein such method is used to perform date overflow and detection and further comprising the step of identifying date variables and values and wherein the software patches perform a windowing function on date values and variables.
Claim 16
Dependent Claim
21 words
A method as claimed in claim 13 wherein date variables and values are identified by identifying variable names in source code.
Claim 17
Dependent Claim
24 words
A method as claimed in claim 13 wherein date variables and values are identified by identifying, in source code, system calls which obtain dates.
Claim 18
Dependent Claim
25 words
A method as claimed in claim 13 wherein date variables and values are identified by identifying, in the binary code, system calls which obtain dates.
Claim 19
Dependent Claim
21 words
A method as claimed in claim 13 wherein date variables and values are indentified by identifing date fields from a database.
Claim 20
Independent Claim
76 words
A method of testing, protecting, or correcting binary code, comprising: executing the original binary code under interpretation; generating a control flow reprcsentation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 21
Independent Claim
76 words
A method of testing, protecting, or correcting binary code, comprising: executing the original binary code under interpretation; generating a control flow reprcsentation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 22
Dependent Claim
20 words
A method as claimed in claim 18 wherein the step of executing under interpretation is used to identify branch targets.
Claim 23
Dependent Claim
22 words
A method as claimed in claim 18 wherein the step of executing under interpretation is used to identify instructions that use dates.
Claim 24
Independent Claim
154 words
A method of testing, protecting, or correcting binary code, comprising; generating a control flow representation of the binary code; generating a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches; and wherein such method is used to perform date overflow and detection and further comprises the step of identifying date variables and values and wherein the software patches perform a date expansion function on date values and variables.
Claim 25
Independent Claim
154 words
A method of testing, protecting, or correcting binary code, comprising; generating a control flow representation of the binary code; generating a data flow representation of the binary code; choosing which values or variables to track; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; using the data flow representation to track the chosen values or variables, wherein determining where to install the software patches is further based on an analysis of the data flow representation; rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches; and wherein such method is used to perform date overflow and detection and further comprises the step of identifying date variables and values and wherein the software patches perform a date expansion function on date values and variables.
Claim 26
Independent Claim
79 words
A method of testing, protecting, or correcting binary code, comprising; using a static target correlation to identify branch targets; generating a control flow representation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 27
Independent Claim
79 words
A method of testing, protecting, or correcting binary code, comprising; using a static target correlation to identify branch targets; generating a control flow representation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 28
Independent Claim
79 words
A method of testing, protecting, or correcting binary code, comprising; using a dynamic target correlation to identify branch targets; generating a control flow representation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 29
Independent Claim
79 words
A method of testing, protecting, or correcting binary code, comprising; using a dynamic target correlation to identify branch targets; generating a control flow representation of the binary code; defining binary software patches; determining where to install the software patches based on an analysis of the control flow representation; and rewriting the binary code by installing the binary software patches into the original binary code and further modifying the original binary code to account for the installed binary software patches.
Claim 30
Dependent Claim
84 words
A data processing system for testing, protecting, or correcting binary code, comprising: correlation means for identifying control points; a control flow representation of the binary code; binary software patches; means for determining where to install the software patches based on an analysis of the control flow representation; and means for rewriting the binary code by installing the binary software patches into the original binary code and by modifying the original binary code to account for code displacements due to the installed binary software patches.
Claim 31
Dependent Claim
84 words
A data processing system for testing, protecting, or correcting binary code, comprising: correlation means for identifying control points; a control flow representation of the binary code; binary software patches; means for determining where to install the software patches based on an analysis of the control flow representation; and means for rewriting the binary code by installing the binary software patches into the original binary code and by modifying the original binary code to account for code displacements due to the installed binary software patches.
Claim 32
Dependent Claim
62 words
A data processing system as claimed in claim 24, further comprising: a data flow representation of the binary code; means for choosing which values or variables to track; and means for using the data flow representation to track the chosen values or variables wherein determining where to install the software patches is further based on an analysis of the data flow representation.
Claim 33
Dependent Claim
22 words
A data processing system as claimed in claim 24, wherein said correlation means comprises static target correlation means for identifying control points.
Claim 34
Dependent Claim
22 words
A data processing system as claimed in claim 24, wherein said correlation means comprises dynamic target correlation means for identifying control points.