IP Library Patent Application 13965727
Patent Application
App. No. 13/965,727

ANTI-TAMPER SYSTEM WITH SELF-ADJUSTING GUARDS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/965,727
Abstract

An anti-tamper system is disclosed that includes self-adjusting guards inserted in software. Self-adjusting guards include invocation criteria and guard function. During run-time, each time the self-adjusting guard is invoked, the invocation criteria is evaluated and the guard function is only executed if the invocation criteria is satisfied. The invocation criteria can be static or dynamic, satisfied randomly with fixed or varying probability, a monotonically or exponentially decreasing function or most any other type of function. The invocation criteria can be satisfied based on elapsed inter-guard invocation time (time since last guard function execution), target inter-guard invocation time, and/or guard execution time. A method is disclosed of inserting self-adjusting guards into software, and executing the software. Evaluating the invocation criteria can include adjusting the invocation criteria when satisfied. The self-adjusting guards can be inserted into the software at a source or object code level.

Claims (34)

1 . An anti-tamper system for protected software on a computer having a processor and a memory, the anti-tamper system comprising:

a self-adjusting guard inserted in the protected software, the protected software and the self-adjusting guard being stored in the memory of the computer, the self-adjusting guard comprising an invocation criteria and a guard function, the guard function providing some anti-tamper protection for the protected software;

wherein during run-time of the protected software by the processor of the computer, each time the processor invokes the self-adjusting guard, the processor first evaluates the invocation criteria of the self-adjusting guard, and then executes the guard function if the invocation criteria is satisfied and does not execute the guard function if the invocation criteria is not satisfied.

2 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard is only satisfied during the Nth time the processor invokes the self-adjusting guard, N being an integer value.

3 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard maintains a count of each time the processor invokes the invocation criteria during run-time of the protected software, and the invocation criteria is satisfied during the Mth time the processor invokes the invocation criteria of the self-adjusting guard and every Nth time thereafter, M and N being integer values and M being less than N.

4 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard is satisfied randomly with a fixed probability of being satisfied.

5 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard maintains a count of each time the processor invokes the invocation criteria during run-time of the protected software, and the invocation criteria is satisfied based on an exponentially decreasing function.

6 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard comprises:

a target probability of guard function execution stored in the memory of the computer;

a random or pseudo-random number generator generating a random value in a generation range each time the processor invokes the invocation criteria during run-time of the protected software; and

an invocation range, the invocation range being a subset of the generation range and the probability of the random value being in the invocation range being equal to the target probability of guard function execution;

wherein the invocation criteria is satisfied when the random value is in the invocation range, and upon being satisfied the target probability is decreased and the invocation range is reduced accordingly.

7 . The anti-tamper system of claim 1 , wherein the invocation criteria of the self-adjusting guard is satisfied based on an elapsed inter-guard invocation time measuring a time duration since that last time the guard function of the self-adjusting guard was executed.

8 . The anti-tamper system of claim 7 , wherein the invocation criteria of the self-adjusting guard maintains a target inter-guard invocation time indicating the minimum time duration before execution of the guard function, and the guard function is satisfied when the elapsed inter-guard invocation time is greater than the target inter-guard invocation time.

9 . The anti-tamper system of claim 8 , wherein the target inter-guard invocation time is increased after each execution of the guard function of the self-adjusting guard.

10 . The anti-tamper system of claim 7 , wherein the invocation criteria of the self-adjusting guard is satisfied based on a guard execution time measuring the time duration for executing the guard function of the self-adjusting guard.

11 . The anti-tamper system of claim 10 , wherein the invocation criteria of the self-adjusting guard is satisfied when a ratio of the guard execution time to the elapsed inter-guard invocation time is less than a threshold ratio.

12 . The anti-tamper system of claim 11 , wherein the threshold ratio is decreased after each execution of the guard function of the self-adjusting guard.

13 . A method for protecting software on a computer having a processor and a memory, the method comprising:

inserting a self-adjusting guard into the software to generate protected software, the protected software and the self-adjusting guard being stored in the memory of the computer, the self-adjusting guard comprising an invocation criteria and a guard function, the guard function providing some anti-tamper protection for the protected software;

executing the protected software on the computer;

each time the processor of the computer invokes the self-adjusting guard,

evaluating the invocation criteria of the self-adjusting guard,

executing the guard function if the invocation criteria is satisfied, and

not executing the guard function if the invocation criteria is not satisfied.

14 . The method of claim 13 , wherein evaluating the invocation criteria of the self-adjusting guard comprises:

evaluating the invocation criteria; and

adjusting the invocation criteria if the invocation criteria is satisfied.

15 . The method of claim 14 , wherein adjusting the invocation criteria comprises updating a target value for satisfying the invocation criteria.

16 . The method of claim 15 , wherein updating a target value for satisfying the invocation criteria comprises decreasing a probability of satisfaction of the invocation criteria.

17 . The method of claim 15 , wherein updating a target value for satisfying the invocation criteria comprises computing new minimum time duration until execution of the guard function.

18 . The method of claim 14 , wherein adjusting the invocation criteria comprises decreasing the likelihood of satisfying the invocation criteria.

19 . The method of claim 13 , wherein inserting a self-adjusting guard into the software to generate protected software comprises inserting source code for the self-adjusting guard into source code for the software to generate source code for the protected software.

20 . The method of claim 13 , wherein inserting a self-adjusting guard into the software to generate protected software comprises inserting object code for the self-adjusting guard into object code for the software to generate object code for the protected software.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Apr 9, 2020
From: ALLY BANK
To: ARXAN TECHNOLOGIES, INC.
Reel/Frame 052359/0087 →
RELEASE OF SECURITY INTEREST Recorded Mar 2, 2017
From: BARINGS FINANCE LLC
To: ARXAN TECHNOLOGIES, INC.
Reel/Frame 041433/0898 →
SECURITY INTEREST Recorded Feb 7, 2017
From: ARXAN TECHNOLOGIES, INC.
To: ALLY BANK
Reel/Frame 041190/0251 →
SECURITY INTEREST Recorded Jul 31, 2014
From: ARXAN TECHNOLOGIES, INC.
To: BABSON CAPITAL FINANCE LLC, AS AGENT
Reel/Frame 033451/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2014
From: MORGAN, KEVIN DALE
To: ARXAN TECHNOLOGIES, INC.
Reel/Frame 032550/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2014
From: MORGAN, KEVIN DALE
To: ARXAN TECHNOLOGIES, INC.
Reel/Frame 032412/0293 →