US2017061106A1PendingUtilityA1

Anti-reverse engineering unified process

Assignee: TECTONIC LABS LLCPriority: Aug 23, 2011Filed: Jul 8, 2015Published: Mar 2, 2017
Est. expiryAug 23, 2031(~5.1 yrs left)· nominal 20-yr term from priority
Inventors:Binh Kien Thai
G06F 2221/0744G06F 21/14G06F 21/50G06F 21/101
48
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Computer-implemented systems, methods, and computer-readable media for generating and executing anti-reverse engineering software include receiving at least one of a set of input instructions and a set of input values; creating a deterministic environment; executing one or more functions corresponding to at least one of the set of input instructions and the set of input values while simultaneously generating a set of output values corresponding to the executed one or more functions, wherein the set of output values is generated based on a deterministic function of the computing device executing the one or more functions; and outputting the set of output values.

Claims

exact text as granted — not AI-modified
1 . A method for generating and executing anti-reverse engineering logic comprising:
 receiving, by a computing device, a non-empty set of input values;   executing, by the computing device, one or more functions corresponding to both the non-empty sets of input values and a set of states of the computing device, wherein the one or more functions correspond to a logic to be protected;   generating, by the computing device, a set of output values corresponding to both the executed one or more functions and the set of states of the computing device; and   outputting, by the computing device, the set of output values,   whereby when the set of output values is later used as the set of input values, the method executes the same one or more functions, and   whereby an alteration of the set of states of the computing device results in the method executing one or more different functions.   
     
     
         2 . The method of  claim 1 , further comprising creating, by the computing device, a deterministic environment,
 wherein said executing one or more functions corresponding to both the non-empty sets of input values and a set of states of the computing device and said generating the set of output values corresponding to both the executed one or more functions and the set of states of the computing device are performed within the deterministic environment.   
     
     
         3 . The method of  claim 2 , wherein the step of creating, by the computing device, the deterministic environment comprises disabling interrupts. 
     
     
         4 . The method of  claim 1 , wherein the set of output values are incorporated into an output composite value. 
     
     
         5 . The method of  claim 4 , wherein a non-operational value is additionally generated and incorporated into the output composite value, and
 wherein when the output composite value is later used as an element of the non-empty set of input values, the non-operational value does not alter execution of the same one or more functions.   
     
     
         6 . The method of  claim 1 , further comprising replacing, by the computing device, one or more branching functions with one or more non-branching functions that render equivalent results. 
     
     
         7 . A system for generating and executing anti-reverse engineering logic comprising:
 a memory; and   a processor operatively coupled to the memory, the processor configured to perform the method comprising:
 receiving a non-empty set of input values; 
 executing one or more functions corresponding to both the non-empty set of input values and a set of states of the computing device, wherein the one or more function correspond to a logic to be protected; 
 generating a set of output values corresponding to both the executed one or more functions and the set of states of the computing device; and 
 outputting the set of output values, 
   whereby when the set of output values is later used as the set of input values, the processor executes the same one or more functions, and   whereby an alteration of the set of states of the computing device results in the method executing one or more different functions.   
     
     
         8 . The system of  claim 7 , wherein the processor is further configured to perform the method of creating a deterministic environment,
 wherein said executing one or more functions corresponding to both the non-empty set of input values and a set of states of the computing device and said generating the set of output values corresponding to both the executed one or more functions and the set of states of the computing device are performed within the deterministic environment.   
     
     
         9 . The system of  claim 8 , wherein the step of creating the deterministic environment comprises disabling interrupts. 
     
     
         10 . The system of  claim 7 , wherein the set of output values are incorporated into an output composite value. 
     
     
         11 . The system of  claim 10 , wherein a non-operational value is additionally generated and incorporated into the output composite value,
 wherein when the output composite value is later used as an element of the non-empty set of input values, the non-operational value does not alter execution of the same one or more functions.   
     
     
         12 . The system of  claim 7 , wherein the processor is further configured to perform the method of replacing one or more branching functions with one or more non-branching functions that render equivalent results. 
     
     
         13 . A non-transitory computer-readable medium having computer-readable code stored thereon that, when executed, performs the method:
 receiving a non-empty set of input values;   executing one or more functions corresponding to both the non-empty set of input values and a set of states of the computing device, wherein the one or more functions correspond to a logic to be protected;   generating a set of output values corresponding to both the executed one or more functions and the set of states of the computing device; and   outputting the set of output values,   whereby when the set of output values is later used as the sets of input values, the method executes the same one or more functions, and   whereby an alteration of the set of states of the computing device results in the method executing one or more different functions.   
     
     
         14 . The medium of  claim 13  having computer-readable code stored thereon that, when executed, further performs the method of creating a deterministic environment,
 wherein said executing one or more functions corresponding to both the non-empty set of input values and a set of states of the computing device and said generating the set of output values corresponding to both the executed one or more functions and the set of states of the computing device are performed within the deterministic environment. 
 
     
     
         15 . The medium of  claim 14 , wherein the step of creating the deterministic environment comprises disabling interrupts. 
     
     
         16 . The medium of  claim 13 , wherein the set of output values are incorporated into an output composite value. 
     
     
         17 . The medium of  claim 16 , wherein a non-operational value is additionally generated and incorporated into the output composite value, and
 wherein when the output composite value is later used as an element of the non-empty set of input values, the non-operational value does not alter execution of the same one or more functions.   
     
     
         18 . The medium of  claim 13  having computer-readable code stored thereon that, when executed, further performs the method of replacing one or more branching functions with one or more non-branching functions that render equivalent results.

Join the waitlist — get patent alerts

Track US2017061106A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.