Patent ID: 8271803

Claim:
A computer-implemented method for proxy-execution of code to prevent reverse engineering of protected software of an application, the method comprising: instantiating the protected software, wherein the protected software comprises a protected binary code and an encrypted section of code specifying a corresponding license right, wherein upon a determination that the encrypted section of code is within a set of operating rights of the application, the encrypted section of code is removed from the protected binary code and stored in a table, the encrypted section of code having computer instructions necessary for execution of the protected binary, and wherein the removed encrypted section of code is replaced with one or more calls to execute relevant portions of the computer instructions of the encrypted section of code using a proxy execution engine; executing the protected binary code in accordance with a digital license until a call to the proxy execution engine generates an exception and halts execution of the protected software; determining to execute the encrypted section of code, using the proxy execution engine, when a license evaluator verifies that the digital license grants the corresponding license right; checking for the presence of a debugger before starting execution of the encrypted section of code; upon detecting the debugger, selecting a response to detection of the debugger from one of the group including re-routing execution of the encrypted section of code, crashing the protected software, and intercepting an interrupt associated with the exception; and executing the selected response to detection of the debugger, wherein operation of the debugger to reverse engineer the protected software is prevented.