PROTECTING SOFTWARE FROM UNAUTHORIZED USE BY CONVERTING SOURCE CODE MODULES TO BYTE CODES
First Claim
1. A method for providing anti-piracy protection for a software application, comprising:
- providing a language specification for a programming language, a library to implement the language, a compiler to compile the language into byte codes, and an interpreter to execute the byte codes using the library; and
providing the language specification, library, compiler, and interpreter, in conjunction with instructions to a software publisher, wherein the software publisher embeds the library and interpreter in the application, selects and prepares application code portions for conversion to byte codes, compiles the prepared portions into byte codes using the compiler, and executes the application using the interpreter and library, wherein during execution of the software application, the interpreter interprets the byte codes, thus obfuscating the application'"'"'s execution path.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for anti-piracy protection of a software application by obfuscation of the execution of portions of the applications code is described. The method includes providing a language specification and library to implement the functions of the language, providing a compiler to translate the language into byte codes, and providing an interpreter to execute the byte codes using the library. The method further includes providing the language specifications, library, compiler, interpreter, and instructions to a software publisher, where the software publisher embeds the library and interpreter in the application to be protected, and selects and prepares application code segments for processing into byte codes by the compiler. The application is then executed using the embedded library and interpreter, where the execution of the application is obfuscated by the use of byte codes.
-
Citations
34 Claims
-
1. A method for providing anti-piracy protection for a software application, comprising:
-
providing a language specification for a programming language, a library to implement the language, a compiler to compile the language into byte codes, and an interpreter to execute the byte codes using the library; and
providing the language specification, library, compiler, and interpreter, in conjunction with instructions to a software publisher, wherein the software publisher embeds the library and interpreter in the application, selects and prepares application code portions for conversion to byte codes, compiles the prepared portions into byte codes using the compiler, and executes the application using the interpreter and library, wherein during execution of the software application, the interpreter interprets the byte codes, thus obfuscating the application'"'"'s execution path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for providing anti-piracy protection for a software application on a server, comprising:
-
providing a language specification for a programming language, a library to implement the language, a compiler to compile the language into byte codes, and an interpreter to execute the byte codes using the library;
providing the language specification and instructions to a software publisher with instructions for instructing the software publisher on how to select portions of code from the application to be protected, and how to prepare the selected segments and the application for processing on the server;
providing the server with the compiler, library, interpreter, and a server application for receiving the software application to be protected and the prepared code segments from the publisher, wherein the server application protects the software application by;
compiling the selected segments into byte codes using the compiler, embedding the byte codes generated by the compiler in the application, thereby obfuscating the selected segments, and embedding the library and interpreter in the application to support run-time interpretation of the compiled byte codes, thereby obfuscating the selected segments. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for providing anti-piracy protection for a software application, wherein the software application is written in a standard computer language and compiled into a standard instruction set, comprising:
-
selecting portions of code from the application to be obscured;
processing the selected portions of application source code with a software tool to generate code comprising a non-standard instruction set, and replacing the selected portions of code with the generated code, therein increasing difficulty of understanding the execution flow of the selected portions of the application; and
providing a software tool for processing the selected portions of application source code on a server, and providing the software tool in the form of a byte code compiler and an interpreter to interpret byte codes generated by the byte code compiler at run-time. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method for providing anti-piracy protection for a software application, wherein the software application is written in a standard computer language and compiled into a standard instruction set, comprising:
-
selecting portions of code from the application to be obscured;
processing the selected portions of application source code with a software tool to generate code comprising a non-standard instruction set, therein increasing difficulty of understanding the execution flow of the selected portions of the application; and
providing the software tool in the form of a byte code compiler, and providing an interpreter to execute the byte codes generated by the byte code compiler at run time. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
Specification