Tamper resistant software encoding
First Claim
1. A method of increasing the tamper-resistance and obscurity of computer software code comprising the steps of:
- transforming the data flow of said computer software code to dissociate the observable operation of the transformed said computer software code from the intent of the original software code;
thereby rendering said computer software code resistant to tampering, yet still executable in the same environments as the unprotected form of said computer software code.
4 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates generally to computer software, and more specifically, to a method and system of making computer software resistant to tampering and reverse-engineering. “Tampering” occurs when an attacker makes unauthorized changes to a computer software program such as overcoming password access, copy protection or timeout algorithms. Broadly speaking, the method of the invention is to increase the tamper-resistance and obscurity of computer software code by transforming the data flow of the computer software so that the observable operation is dissociated from the intent of the original software code. This way, the attacker can not understand and decode the data flow by observing the execution of the code. A number of techniques for performing the invention are given, including encoding software arguments using polynomials, prime number residues, converting variables to new sets of boolean variables, and defining variables on a new n-dimensional vector space.
-
Citations
45 Claims
-
1. A method of increasing the tamper-resistance and obscurity of computer software code comprising the steps of:
-
transforming the data flow of said computer software code to dissociate the observable operation of the transformed said computer software code from the intent of the original software code;
thereby rendering said computer software code resistant to tampering, yet still executable in the same environments as the unprotected form of said computer software code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45)
-
-
43. The method of claim wherein said step of encoding comprises the step of:
modifying selected expressions in said computer software code to allow a broader range of values for variables so that certain operations on the variables will execute without errors, some of the lime, without causing the encoded software to immediately fail.
Specification