Software self-defense systems and methods
First Claim
1. A method performed by a computer system comprising a processor and a non-transitory computer-readable storage medium storing instructions that when executed by the processor, cause the computer system to perform the method, the method comprising:
- inserting a plurality of primers in a computer program;
compiling the computer program to generate an executable computer program;
customizing the executable computer program to generate a customized executable computer program, wherein the customizing is configured to preserve the plurality of primers;
removing the plurality of primers from the customized executable computer program;
transmitting the customized executable computer program with the plurality of primers removed to a client computer system; and
transmitting a patch file to the client computer system, the patch file comprising the plurality of primers,wherein the patch file is configured to be merged with the customized executable computer program with the plurality of primers removed by the client computer system.
2 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.
64 Citations
18 Claims
-
1. A method performed by a computer system comprising a processor and a non-transitory computer-readable storage medium storing instructions that when executed by the processor, cause the computer system to perform the method, the method comprising:
-
inserting a plurality of primers in a computer program; compiling the computer program to generate an executable computer program; customizing the executable computer program to generate a customized executable computer program, wherein the customizing is configured to preserve the plurality of primers; removing the plurality of primers from the customized executable computer program; transmitting the customized executable computer program with the plurality of primers removed to a client computer system; and transmitting a patch file to the client computer system, the patch file comprising the plurality of primers, wherein the patch file is configured to be merged with the customized executable computer program with the plurality of primers removed by the client computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable storage medium storing instructions that when executed by a system comprising a processor, cause the system to perform a method comprising:
-
inserting a plurality of primers in a computer program; compiling the computer program to generate an executable computer program; customizing the executable computer program to generate a customized executable computer program, wherein the customizing is configured to preserve the plurality of primers; removing the plurality of primers from the customized executable computer program; transmitting the customized executable computer program with the plurality of primers removed to a client computer system; and transmitting a patch file to the client computer system, the patch file comprising the plurality of primers, wherein the patch file is configured to be merged with the customized executable computer program with the plurality of primers removed by the client computer system. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification