Feature-Specific Keys for Executable Code
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 first key part, 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 first key part consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions;
generating an identifier and a second key part for each of the defined second functions;
generating a cryptographic key determined from the first key part and the second key part;
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 first compiled software stored in a computer memory to generate a first key part, the first compiled software configured to perform software protection functions and defined second functions distinct from the software protection functions when executed, and the first key part consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions, generating an identifier and a second key part for each of the defined second functions, generating a cryptographic key determined from the first key part and the second key part, 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 first key part, 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 first key part consisting of a first portion of the first compiled software comprising executable code compiled from the software protection functions; generating an identifier and a second key part for each of the defined second functions; generating a cryptographic key determined from the first key part and the second key part; 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 first key part and a key identifier from a second portion of the executable software stored in a computer memory; querying a data table using the identifier to obtain a second key part; combining the first key part and the second key part to generate a decryption key; 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 first key part from a second portion of the instructions; determine an identifier for a third portion of the instructions; obtain a second key part using the identifier; determine a decryption key using the first key part and second key part; decrypt the 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