System and method for defending against reverse engineering of software, firmware and hardware
First Claim
1. A method for defending a software against reverse engineering in a target environment comprising:
- a server acquiring information associated with said target environment, said acquired information associated with said target environment comprising one or more temporary values and one or more values acquired from a system unrelated to said target environment;
wherein the one or more temporary values comprising one or more just in time values supplied close to a time of use of the one or more just in time values;
generating an obfuscated executable program using a random obfuscating compiler by encrypting said software with said acquired information associated with said target environment;
sending said encrypted software with said acquired information associated with said target environment to an execution environment;
acquiring information associated with said execution environment, said acquired information associated with said execution environment comprising one or more orthogonal values utilized to verify said execution environment is a correct execution environment associated with said target environment;
wherein the one or more orthogonal values are monitored scenario information selectable based on a security level associated with the execution environment;
authenticating said execution environment as the target environment by comparing said acquired information associated with said execution environment with said acquired information associated with said target environment; and
if said two sets of information match, decrypting said encrypted software with said acquired information associated with said execution environment.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for defending a software against reverse engineering in a target environment includes acquiring information from the target environment, encrypting the software to be protected with the acquired information, sending the encrypted software with the acquired information to an execution environment, acquiring information from the execution environment, comparing the information from the execution environment with the acquired information from the target environment to authenticate the execution environment as the target environment, and if the two set of information match, decrypting the software to be protected, and if two set of information do not match, destroying said software.
36 Citations
17 Claims
-
1. A method for defending a software against reverse engineering in a target environment comprising:
-
a server acquiring information associated with said target environment, said acquired information associated with said target environment comprising one or more temporary values and one or more values acquired from a system unrelated to said target environment; wherein the one or more temporary values comprising one or more just in time values supplied close to a time of use of the one or more just in time values; generating an obfuscated executable program using a random obfuscating compiler by encrypting said software with said acquired information associated with said target environment; sending said encrypted software with said acquired information associated with said target environment to an execution environment; acquiring information associated with said execution environment, said acquired information associated with said execution environment comprising one or more orthogonal values utilized to verify said execution environment is a correct execution environment associated with said target environment; wherein the one or more orthogonal values are monitored scenario information selectable based on a security level associated with the execution environment; authenticating said execution environment as the target environment by comparing said acquired information associated with said execution environment with said acquired information associated with said target environment; and if said two sets of information match, decrypting said encrypted software with said acquired information associated with said execution environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A random obfuscating compiler (ROC) system for defending a software against reverse engineering in a target environment of comprising:
-
a server for generating one or more anonymous electronic links for acquiring information associated with the target environment, said one or more anonymous electronic links known only by the target environment, said acquired information associate with said target environment comprising one or more temporary values and one or more values acquired from a system unrelated to said target environment, wherein the one or more temporary values comprising one or more just in time values supplied close to a time of use of the one or more just in time values, wherein said server comprises a compiler for compiling said software to be protected, wherein said software to be protected is encrypted by said acquired information associated with the target environment to generate an obfuscated executable program, wherein said obfuscated executable program is adapted to acquire information associated with an execution environment and authenticate said execution environment as said target environment by comparing said acquired information associated with said execution environment with said acquired information associated with said target environment though said one or more anonymous electronic links, said acquired information associated with said execution environment comprising one or more orthogonal values utilized to verify said execution environment is a correct execution environment associated with said target environment wherein the one or more orthogonal values are monitored scenario information selectable based on a security level associated with the execution environment. - View Dependent Claims (17)
-
Specification