Compiler that decrypts encrypted source code
First Claim
Patent Images
1. A decrypting compiler comprising:
- a first input section for inputting encrypted source code;
a second input section for inputting plain text source code;
a decrypting section that decrypts the encrypted source code into plain text decrypted source code; and
a compiling section that compiles the plain text input by the second input section and the plain text source code decrypted by the decrypting section, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input section is produced by a software manufacturer, and wherein the plain text source code input by the second input section is produced by a third-party software developer different from the software manufacturer.
1 Assignment
0 Petitions
Accused Products
Abstract
A decrypting compiler that accepts encrypted source code from a software manufacturer, decrypts the encrypted source code into plain text that is not accessible outside the compiler, and compiles the decrypted source code into linkable binary objects. Because the decrypting compiler decrypts the encrypted source code such that the plain text is not accessible outside the compiler, trade secret and proprietary information from the source code is not easily learned by third-party software developers.
77 Citations
82 Claims
-
1. A decrypting compiler comprising:
-
a first input section for inputting encrypted source code;
a second input section for inputting plain text source code;
a decrypting section that decrypts the encrypted source code into plain text decrypted source code; and
a compiling section that compiles the plain text input by the second input section and the plain text source code decrypted by the decrypting section, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input section is produced by a software manufacturer, and wherein the plain text source code input by the second input section is produced by a third-party software developer different from the software manufacturer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for generating an executable for a target device, comprising:
-
a first input section for inputting encrypted source code;
a second input section for inputting plain text source code;
a decrypting section that decrypts the encrypted source code into plain text decrypted source code;
a compiling section that compiles the plain text input by the second input section and the plain text source code decrypted by the decrypting section, so as to produce linkable binary objects; and
a linker that links the linkable binary objects produced by the compiling section so as to generate the executable, wherein the encrypted source code input by the first input section is produced by a software manufacturer, and wherein the plain text source code input by the second input section is produced by a third-party software developer different from the software manufacturer.
-
-
17. An apparatus for compiling source code, comprising:
-
a memory including a region for storing executable process steps;
and a processor for executing the executable process steps, the executable process steps including;
(a) a first input step for inputting encrypted source code;
(b) a second input step for inputting plain text source code;
(c) a decrypting step that decrypts the encrypted source code into plain text decrypted source code; and
(d) a compiling step that compiles the plain text input by the second input step and the plain text source code decrypted by the decrypting step, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input step is produced by a software manufacturer, and wherein the plain text source code input by the second input step is produced by a third-party software developer different from the software manufacturer. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An apparatus for generating an executable for a target device, comprising:
-
a memory including a region for storing executable process steps; and
a processor for executing the executable process steps, the executable process steps including;
(a) a first input step for inputting encrypted source code;
(b) a second input step for inputting plain text source code;
(c) a decrypting step that decrypts the encrypted source code into plain text decrypted source code;
(d) a compiling step that compiles the plain text input by the second input step and the plain text source code decrypted by the decrypting step, so as to produce linkable binary objects; and
(e) a linking step that links the linkable binary objects produced by the compiling step so as to generate the executable,wherein the encrypted source code input by the first input step is produced by a software manufacturer, and wherein the plain text source code input by the second input step is produced by a third-party software developer different from the software manufacturer.
-
-
33. Computer-executable process steps stored on a computer-readable medium, the computer executable process steps for compiling source code, the computer-executable process steps comprising:
-
first input code for inputting encrypted source code;
second input code for inputting plain text source code;
decrypting code that decrypts the encrypted source code into plain text decrypted source code; and
compiling code that compiles the plain text input by the second input code and the plain text source code decrypted by the decrypting code, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input code is produced by a software manufacturer, and wherein the plain text source code input by the second input code is produced by a third-party software developer different from the software manufacturer. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. Computer-executable process steps stored on a computer-readable medium, the computer executable process steps for generating an executable for a target device, the computer-executable process steps comprising:
-
first input code for inputting encrypted source code;
second input code for inputting plain text source code;
decrypting code that decrypts the encrypted source code into plain text decrypted source code;
compiling code that compiles the plain text input by the second input code and the plain text source code decrypted by the decrypting code, so as to produce linkable binary objects; and
linking code that links the linkable binary objects produced by the compiling code so as to generate the executable, wherein the encrypted source code input by the first input code is produced by a software manufacturer, and wherein the plain text source code input by the second input code is produced by a third-party software developer different from the software manufacturer.
-
-
49. A computer-readable medium which stores computer-executable process steps, the computer-executable process steps for compiling source code, the computer-executable process steps comprising:
-
a first input step for inputting encrypted source code;
a second input step for inputting plain text source code;
a decrypting step that decrypts the encrypted source code into plain text decrypted source code; and
a compiling step that compiles the plain text input by the second input step and the plain text source code decrypted by the decrypting step, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input step is produced by a software manufacturer, and wherein the plain text source code input by the second input step is produced by a third-party software developer different from the software manufacturer. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
-
-
64. A computer-readable medium which stores computer-executable process steps, the computer-executable process steps for generating an executable for a target device, the computer-executable process steps comprising:
-
a first input step for inputting encrypted source code;
a second input step for inputting plain text source code;
a decrypting step that decrypts the encrypted source code into plain text decrypted source code;
a compiling step that compiles the plain text input by the second input step and the plain text source code decrypted by the decrypting step, so as to produce linkable binary objects; and
a linking step that links the linkable binary objects produced by the compiling step so as to generate the executable, wherein the encrypted source code input by the first input step is produced by a software manufacturer, and wherein the plain text source code input by the second input step is produced by a third-party software developer different from the software manufacturer.
-
-
65. An apparatus for compiling source code, comprising:
-
first input means for inputting encrypted source code;
second input means for inputting plain text source code;
decrypting means for decrypting the encrypted source code into plain text decrypted source code; and
compiling means for compiling the plain text input by the second input means and the plain text source code decrypted by the decrypting means, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input means is produced by a software manufacturer, and wherein the plain text source code input by the second input means is produced by a third-party software developer different from the software manufacturer. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79)
-
-
80. An apparatus for generating an executable for a target device, comprising:
-
first input means for inputting encrypted source code;
second input means for inputting plain text source code;
decrypting means for decrypting the encrypted source code into plain text decrypted source code;
compiling means for compiling the plain text input by the second input means and the plain text source code decrypted by the decrypting means, so as to produce linkable binary objects; and
linking means for linking the linkable binary objects produced by the compiling means so as to generate the executable, wherein the encrypted source code input by the first input means is produced by a software manufacturer, and wherein the plain text source code input by the second input means is produced by a third-party software developer different from the software manufacturer.
-
-
81. A decrypting compiler comprising:
-
a first input section for inputting encrypted source code;
a second input section for inputting plain text source code;
a decrypting section that decrypts the encrypted source code into plain text decrypted source code; and
a compiling section that compiles the plain text input by the second input section and the plain text source code decrypted by the decrypting section, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input section is produced by a first provider, and wherein the plain text source code input by the second input section is produced by a second provider different from the first provider.
-
-
82. Computer-executable process steps stored on a computer-readable medium, the computer executable process steps for compiling source code, the computer-executable process steps comprising:
-
first input code for inputting encrypted source code;
second input code for inputting plain text source code;
decrypting code that decrypts the encrypted source code into plain text decrypted source code; and
compiling code that compiles the plain text input by the second input code and the plain text source code decrypted by the decrypting code, so as to produce compiled code therefrom, wherein the encrypted source code input by the first input code is produced by a first provider, and wherein the plain text source code input by the second input code is produced by a second provider different from the first provider.
-
Specification