Software self-checking systems and methods
First Claim
Patent Images
1. A non-transitory computer-readable storage medium, the computer-readable storage medium storing programming instructions that, if executed by a processor of a computer system, are operable to cause the computer system to perform operations comprising:
- calculating, by a self-checking code sequence included in a program, during execution of the program, a result of a function based on a portion of the program;
comparing, by the self-checking code sequence, the result with a predefined value;
determining, by the self-checking code sequence, that the result does not match a predefined value based on the comparison; and
triggering a tamper response mechanism based on the determination that the result does not match the predefined value.
3 Assignments
0 Petitions
Accused Products
Abstract
Software self-checking mechanisms are described for improving software tamper resistance and/or reliability. Redundant tests are performed to detect modifications to a program while it is running. Modifications are recorded or reported. Embodiments of the software self-checking mechanisms can be implemented such that they are relatively stealthy and robust, and so that it they are compatible with copy-specific static watermarking and other tamper-resistance techniques.
95 Citations
17 Claims
-
1. A non-transitory computer-readable storage medium, the computer-readable storage medium storing programming instructions that, if executed by a processor of a computer system, are operable to cause the computer system to perform operations comprising:
-
calculating, by a self-checking code sequence included in a program, during execution of the program, a result of a function based on a portion of the program; comparing, by the self-checking code sequence, the result with a predefined value; determining, by the self-checking code sequence, that the result does not match a predefined value based on the comparison; and triggering a tamper response mechanism based on the determination that the result does not match the predefined value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
Specification