Patent ID: 9317667
Filing Date: 2016-04-19
CPC Classification: G06F

Claim Text:
1. A computer program obfuscating system comprising a hardware processor including a memory, the hardware processor being operative to: provide a computer program performing a plurality of commands including a first command, the computer program including at least one computer program variable used during execution of the computer program; and then add an opaque predicate to the computer program to obfuscate the computer program so that: the opaque predicate added to the computer program comprises at least one polynomial including a polynomial P in at least one indeterminate, the polynomial P being a degree two or more polynomial; during execution of the obfuscated computer program, the polynomial P is evaluated by substituting the value or values of the at least one computer program variable, or a function of the value or values of the at least one computer program variable, into the polynomial P yielding at least one result including a first result R1; and during execution of the obfuscated computer program, an interval of the polynomial P is selected, and the opaque predicate is evaluated based on the at least one result R1 such that a decision as to whether or not to perform the first command is dependent upon comparing the first result R1 to at least one value in accordance with a predetermined mathematical relationship, wherein the predetermined mathematical relationship is based on at least one property of the polynomial P and wherein the at least one property of the polynomial P includes at least one of the following: whether the sign of the polynomial P is positive or negative in the selected interval of the polynomial P; whether the polynomial P is monotonically increasing or monotonically decreasing in the selected interval of the polynomial P; and whether Q divides P where Q is a polynomial that is included in the opaque predicate; wherein