Obfuscation of automatically generated code
First Claim
Patent Images
1. In a graphical programming environment, a computer-implemented method comprising:
- providing a block diagram model of a dynamic system in the graphical programming environment executing on a computing device;
generating source code from the block diagram model in the graphical programming environment;
converting the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes;
removing comments and formatting from the generated source code;
converting strings to a different number system; and
applying a one-way hash function to the generated source code;
wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation;
obfuscating related files necessary to compile the obfuscated source code; and
compiling the obfuscated source code.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided for obfuscating code generated from a block diagram model in a graphical programming environment. The obfuscation may be removed through the use of a password. Incorporating the obfuscated code in a block diagram allows for code to be generated from the block diagram incorporating the obfuscated code.
57 Citations
23 Claims
-
1. In a graphical programming environment, a computer-implemented method comprising:
-
providing a block diagram model of a dynamic system in the graphical programming environment executing on a computing device; generating source code from the block diagram model in the graphical programming environment; converting the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscating related files necessary to compile the obfuscated source code; and compiling the obfuscated source code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method, comprising:
-
providing a block diagram model of a dynamic system in a graphical programming environment executing on a computing device; generating source code from the block diagram model in the graphical programming environment; converting a portion of the generated source code to obfuscated source, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the portion of the generated source code; converting strings to a different number system in the portion of the generated source code; and applying a one-way hash function to the portion of the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscating related files necessary to compile the obfuscated source code; and compiling the obfuscated source code. - View Dependent Claims (14, 15, 16)
-
-
17. A computer implemented method in a graphical programming environment comprising:
-
providing a block diagram model of a dynamic system in the graphical programming environment executing on a computing device; selecting a target code generator that generates source code for a target environment; generating the source code from the block diagram model in the graphical programming environment using the target code generator; converting the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscating related files necessary to compile the obfuscated source code; and compiling the obfuscated source code. - View Dependent Claims (18, 19)
-
-
20. A system for generating and displaying a graphical modeling application, comprising:
-
a distribution server for providing to a client device obfuscated source code, the distribution server is capable of; providing a block diagram model; generating source code from the block diagram model; converting the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; and obfuscating related files necessary to compile the obfuscated source code; the client device in communication with the distribution server, wherein the client device is an electronic device.
-
-
21. In a network having a server, executing a graphical modeling environment, and a client device in communication with the server, a method comprising:
-
providing, at the server, a block diagram model of a dynamic system; receiving, at the server from the client device, a request to generate obfuscated source code; generating, at the server, source code from the block diagram model in the graphical modeling environment; converting, at the server, the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscating, at the server, related files necessary to compile the obfuscated source code; and transmitting to the client device from the server the obfuscated source code and obfuscated related files.
-
-
22. A computer-readable storage medium holding instructions, the instructions when executed causing a computing device to:
-
provide a block diagram model of a dynamic system in a graphical programming environment; generate source code from the block diagram model in the graphical programming environment; convert the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscate related files necessary to compile the obfuscated source code; and compile the obfuscated source code.
-
-
23. A system for generating and displaying a graphical modeling application, comprising:
-
user-operable input means for inputting data to the graphical modeling application executing in a graphical modeling environment; a display device for displaying a graphical model; and an electronic device including memory for storing computer program instructions and data, and a processor for executing the stored computer program instructions, the computer program instructions including instructions for; providing a block diagram model of a dynamic system; generating source code from the block diagram model in the graphical modeling environment; converting the generated source code to obfuscated source code, the obfuscated source code automatically selected based on functional criteria of the block diagram model or functional criteria of the generated source code, the functional criteria including semantic and syntactic notions that affect execution and editing of the block diagram model or the generation of the source code, wherein the converting includes; removing comments and formatting from the generated source code; converting strings to a different number system; and applying a one-way hash function to the generated source code; wherein the obfuscation is deterministic and a provided password is capable of breaking the determinism of the obfuscation; obfuscating related files necessary to compile the obfuscated source code; and compiling the obfuscated source code.
-
Specification