Software self-defense systems and methods
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for protecting a computer program from unauthorized analysis and modification. Obfuscation transformations can be applied to the computer program'"'"'s local structure, control graph, and/or data structure to render the program more difficult to understand and/or modify. Tamper-resistance mechanisms can be incorporated into the computer program to detect attempts to tamper with the program'"'"'s operation. Once an attempt to tamper with the computer program is detected, the computer program reports it to an external agent, ceases normal operation, and/or reverses any modifications made by the attempted tampering. The computer program can also be watermarked to facilitate identification of its owner. The obfuscation, tamper-resistance, and watermarking transformations can be applied to the computer program'"'"'s source code, object code, or executable image.
-
Citations
68 Claims
-
1-56. -56. (canceled)
-
57. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program running on a first computer system and being designed to carry out one or more specified tasks, the method including:
-
detecting an attempt to tamper with the structure or function of the computer program;
sending an indication of attempted tampering to a second computer system;
delaying an additional response to detected tampering by at least a first predefined period of time following detection of attempted tampering;
responding to detected tampering by using one or more counter measures. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65)
-
-
66. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program being designed to carry out one or more specified tasks, the method including:
-
detecting an attempt to tamper with the structure or function of the computer program;
waiting at least a predefined period of time to respond to the attempt to tamper with the structure or function of the computer program; and
responding to the attempt to tamper with the structure or function of the computer program.
-
-
67. A system for resisting attempts to tamper with the structure or function of a computer program, the system including:
-
means for detecting attempts to tamper with the structure or function of the computer program;
means for transmitting to an external agent an indication that an attempt to tamper with the structure or function of the computer program was detected; and
means for delaying transmission of the indication for a predefined period of time.
-
-
68-81. -81. (canceled)
Specification