Claims
- 1. A method of testing, protecting, or correcting binary code, comprising:
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.
- 2. A method as claimed in claim 1, wherein such method is used to perform overflow detection, repair and test.
- 3. A method as claimed in claim 1, wherein such method is used to perform assertion checking.
- 4. A method as claimed in claim 1, wherein such method is used to perform coverage testing.
- 5. A method as claimed in claim 1, wherein such method is used to perform argument remediation coverage testing.
- 6. A method as claimed in claim 1, wherein such method is used to perform continuous testing.
- 7. A method as claimed in claim 1, wherein such method is used to perform bootstrap regression testing.
- 8. A method as claimed in claim 1, wherein such method is used to perform test path identification.
- 9. A method as claimed in claim 1, wherein such method is used to perform date identification.
- 10. A method as claimed in claim 1, wherein such method is used to perform zip code identification.
- 11. A method as claimed in claim 1, wherein such method is used to perform telephone number or area code identification.
- 12. A method as claimed in claim 1, wherein such method is used to perform currency identification.
- 13. A method is claimed in claim 1, further comprising:
generating a data flow representation of the binary code; choosing which values or variables to track; and 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.
- 14. A method as claimed in claim 13 wherein the control and data flow representations are generated from source code.
- 15. A method as claimed in claim 13, wherein the control and data flow representations are generated from binary code.
- 16. A method as claimed in claim 13, 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.
- 17. A method as claimed in claim 1 further comprising the step of executing the original binary code under interpretation.
- 18. A method as claimed in claim 17 wherein the step of executing under interpretation is used to identify branch targets.
- 19. A method as claimed in claim 17 wherein the step of executing under interpretation is used to identify instructions that use dates.
- 20. A method as claimed in claim 16 wherein date variables and values are identified by identifying variable names in source code.
- 21. A method as claimed in claim 16 wherein date variables and values are identified by identifying, in source code, system calls which obtain dates.
- 22. A method as claimed in claim 16 wherein date variables and values are identified by identifying, in the binary code, system calls which obtain dates.
- 23. A method as claimed in claim 16 wherein date variables and values are identified by identifying data fields from a database.
- 24. A method as claimed in 13 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.
- 25. A method as claimed in claim 1, further comprising the step of using a static target correlation to identify branch targets.
- 26. A method as claimed in claim 1, further comprising the step of using a dynamic target correlation to identify branch targets.
- 27. A data processing system for testing, protecting, or correcting binary code, comprising:
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.
- 28. A data processing system as claimed in claim 27, 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.
- 29. A data processing system as claimed in claim 27, further comprising:
static target correlation means for identifying control points.
- 30. A data processing system as claimed in claim 27, further comprising:
dynamic target correlation means for identifying control points.
RELATED APPLICATION
[0001] This application is a Continuation of application No. 08/985,052, filed Dec. 4, 1997, the entire teachings of which are incorporated herein by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
08985052 |
Dec 1997 |
US |
Child |
09358673 |
Jul 1999 |
US |