Patent ID: 7287166

Claim:
A computer implemented method for adding tamper resistance to a software program, the method comprising: selecting a program block that computes a result necessary for proper execution of the software program, the program block comprising at least one program instruction; selecting a silent guard for the program block; selecting an insertion point in the software program; selecting a program variable in the software program; determining the expected value of the program variable at the insertion point; determining the expected value of the silent guard at the start of execution of the program block; installing a second computation that includes the runtime value of the program variable, such that the result of the second computation is corrupted if the runtime value of the program variable is not equal to the expected value of the program variable at the insertion point; setting the silent guard equal to the result of the second computation, such that the runtime value of the silent guard equals the expected value of the silent guard if the runtime value of the program variable equals the expected value of the program variable at the insertion point; and installing a first computation dependent on the silent guard in the software program, such that if the runtime value of the silent guard is not equal to the expected value of the silent guard then the first computation causes the result computed by the program block to evaluate improperly, causing the software program to execute improperly.