Securing Executable Code Integrity Using Auto-Derivative Key
First Claim
1. A method for protecting software from tampering, comprising:
- processing, using a computer, first compiled software stored in a computer memory to generate a cryptographic key, the first compiled software configured to perform software protection functions and defined second functions distinct from the software protection functions when executed by a computer processor, and the cryptographic key consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions;
encrypting a second portion of the first compiled software using the cryptographic key, to produce second compiled software comprising the first portion in unencrypted form and the second portion encrypted with the cryptographic key, wherein the second portion comprises executable code compiled from the defined second functions; and
storing the second compiled software in a computer memory for distribution to a client device.
7 Assignments
0 Petitions
Accused Products
Abstract
A method for protecting software from tampering includes steps for processing, using a computer, first compiled software stored in a computer memory to generate a cryptographic key, the first compiled software configured to perform software protection functions and defined second functions distinct from the software protection functions when executed by a computer processor, the cryptographic key consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions, encrypting a second portion of the first compiled software using the cryptographic key to produce second compiled software comprising the first portion in unencrypted form and the second portion encrypted with the cryptographic key, wherein the second portion comprises executable code compiled from the defined second functions, and storing the second compiled software in a computer memory for distribution to a client device.
-
Citations
20 Claims
-
1. A method for protecting software from tampering, comprising:
-
processing, using a computer, first compiled software stored in a computer memory to generate a cryptographic key, the first compiled software configured to perform software protection functions and defined second functions distinct from the software protection functions when executed by a computer processor, and the cryptographic key consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions; encrypting a second portion of the first compiled software using the cryptographic key, to produce second compiled software comprising the first portion in unencrypted form and the second portion encrypted with the cryptographic key, wherein the second portion comprises executable code compiled from the defined second functions; and storing the second compiled software in a computer memory for distribution to a client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for executing software at a client device, comprising:
-
executing a first portion of executable software using a computer processor, to extract a decryption key from a second portion of the executable software stored in a computer memory; decrypting a third portion of the executable software using the decryption key to provide an executable third portion that is distinct from the first and second portions of the executable software; and executing the executable third portion using the computer processor to perform a processing function. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-readable medium encoded with instructions configured to cause a computer to:
-
execute a first portion of the instructions to extract a decryption key from a second portion of the instructions; decrypt a third portion of the instructions using the decryption key to provide an executable third portion that is distinct from the first and second portions of the instructions; and execute the executable third portion to perform a processing function. - View Dependent Claims (19, 20)
-
Specification