Compiler Based Obfuscation
First Claim
1. A method comprising:
- modifying code for a development project within a compiler to produce one or more modifications to obfuscate a portion of the code as part of compilation of the code; and
generating by the compiler a compiled version of the code having the modifications produced within the compiler to obfuscate the portion of code.
3 Assignments
0 Petitions
Accused Products
Abstract
Compiler based obfuscation is described. To protect portions of a code project with obfuscations, the code is modified within a compiler to produce one or more modifications that obfuscate the code as part of a compilation process. A compiled version of the code is generated having the modifications that are produced within the compiler. In one approach, the compiler is configured to consume an obfuscation description that indicates portions of the code to protect and specifies the modifications to make to the indicated portions. Various different modifications of code may be performed during the compilation process to implement corresponding obfuscation features. For example, the modifications made within a compiler may include, but are not limited to, modifications designed to enable tamper detection, anti-debugging, and/or encryption of the code.
43 Citations
20 Claims
-
1. A method comprising:
-
modifying code for a development project within a compiler to produce one or more modifications to obfuscate a portion of the code as part of compilation of the code; and generating by the compiler a compiled version of the code having the modifications produced within the compiler to obfuscate the portion of code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more computer-readable storage media storing instructions that, when executed by a computing device, implement a compiler module configured to perform operations comprising:
-
obtaining directives indicative of portions of source code for a development project to protect and modifications to make to obfuscate the indicated portions; generating intermediate language code that combines the source code with code to implement the directives; and applying the directives to the intermediate language code to modify the indicated portions in accordance with the directives during compilation of the intermediate language code by the compiler module. - View Dependent Claims (15, 16, 17)
-
-
18. A computing device comprising:
-
a processing system; one or more modules operable at least in part via hardware of the processing system to implement an integrated development environment (IDE) configured to; expose a development interface to enable creation of source code for a software development project; associate with the source code an obfuscation description produced through the development interface to specify modifications for a compiler to make during compilation of the source code to obfuscate one or more selected portions of the source code; and compile the source code to produce protected compiled code for the development project using the obfuscation description to implement the specified modifications to obfuscate the one or more selected portions during compilation. - View Dependent Claims (19, 20)
-
Specification