Software self-checking systems and methods
First Claim
Patent Images
1. A method comprising:
- (a) inserting a plurality of correctors into object code of a program embodied on a non-transitory computer-readable medium;
(b) assigning self-checking code sequences to overlapping portions of the program, each of said portions containing at least one corrector, wherein each self-checking code sequence is operable to calculate a function of at least one of said portions; and
(c) assigning values to the correctors, the value of each corrector being chosen such that the function calculated by self-checking code sequence assigned to a given portion of the program containing a given corrector results in a predefined value when the given portion has not been improperly modified.
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.
-
Citations
17 Claims
-
1. A method comprising:
-
(a) inserting a plurality of correctors into object code of a program embodied on a non-transitory computer-readable medium; (b) assigning self-checking code sequences to overlapping portions of the program, each of said portions containing at least one corrector, wherein each self-checking code sequence is operable to calculate a function of at least one of said portions; and (c) assigning values to the correctors, the value of each corrector being chosen such that the function calculated by self-checking code sequence assigned to a given portion of the program containing a given corrector results in a predefined value when the given portion has not been improperly modified. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable medium storing instructions that, when executed by a processor, are configured to cause the processor to perform a method including:
-
calculating, utilizing a self-checking code sequence assigned to a first portion of a plurality of overlapping portions of a program, a function of the first portion, said portion containing a corrector having an assigned value chosen such that the function calculated by the self-checking code sequence results in a predefined value when the portion has not been improperly modified; and triggering a tamper response mechanism if the functioned calculated by the self-checking code sequence does not result in the predefined value. - View Dependent Claims (14, 15, 16, 17)
-
Specification