Securing distributable content against hostile attacks
First Claim
1. A method comprising:
- dynamically obtaining one or more program operators from source code; and
applying data transformation to a portion of the source code based on one of said one or more program operators to provide encrypting compiler-generated code.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, the present invention may perform a transformation based on existing program operations or operators which may provide encrypting compiler-generated code for compilation with original source code, securing distributable content in hostile environments. As an example, use of compiler analysis and heuristics for pairing variables and identifying encryption/decryption points may protect distributable software, such as the compiled code from automated attacks. In one embodiment, pre-compiler software may dynamically obtain one or more program operators from the source code for applying data transformation based on custom ciphers to encrypt/decrypt data in between references to data variables in a particular portion of the source code, providing encrypting compiler-generated code for mixing with the source code prior to compilation into tamper-resistant object code.
-
Citations
27 Claims
-
1. A method comprising:
-
dynamically obtaining one or more program operators from source code; and
applying data transformation to a portion of the source code based on one of said one or more program operators to provide encrypting compiler-generated code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
analyzing flow of data in source code having one or more program operators to determine matching references to a pair of variables;
determining a block of the source code in which said pair of variables is not used;
associating the matching references based on a heuristic to provide data encryption to modify a portion of the source code into encrypting compiler-generated code; and
mixing the encrypting compiler-generated code with the source code. - View Dependent Claims (10, 11)
-
-
12. A method comprising:
-
identifying a first reference point and a second reference point within a set of blocks of source code having one or more program operators;
associating an encryption code in proximity to the first reference point and associating a decryption code in proximity to the second reference point; and
compiling a portion of the source code into encrypting compiler-generated code to mix with the source code other than said portion. - View Dependent Claims (13, 14, 15)
-
-
16. An article comprising a medium storing instructions that, if executed enable a system to:
-
dynamically obtain one or more program operators from source code; and
apply data transformation to a portion of the source code based on one of said one or more program operators to form encrypting compiler-generated code. - View Dependent Claims (17, 18, 19)
-
-
20. An apparatus comprising:
-
an analyzer to perform data flow analysis of source code to dynamically obtain one or more program operators therefrom; and
a code transformer coupled to said analyzer to apply data transformation to select a selected region of the source code in which to provide encrypting compiler-generated code based on one of said one or more program operators. - View Dependent Claims (21, 22, 23)
-
-
24. A system comprising:
-
a dynamic random access memory having source code stored therein;
an analyzer to perform data flow analysis of the source code to dynamically obtain one or more program operators therefrom; and
a code transformer coupled to said analyzer to apply data transformation to select a selected region of the source code to provide encrypting compiler-generated code based on one of said one or more program operators. - View Dependent Claims (25, 26, 27)
-
Specification