Software Anti-Tampering via Corruption Functions and Breakpoint Exceptions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software programs are vulnerable to attacks using hardware breakpoints, which can lead to unauthorized modification, copying, and cheating in online games, resulting in loss of intellectual property and revenue for developers.

Innovation Solution

Incorporating corruption functions with starting locations and instructions that trigger exceptions when hardware breakpoints are set, using debug registers to prevent the execution of these functions and ensuring the program's integrity by setting breakpoints and exception handlers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If hardware breakpoints are provided to allow legitimate debugging operations, then software development and debugging capability is improved, but the software becomes vulnerable to malicious attacks and unauthorized operations

Engineering Contradiction:
Improvedebugging capabilityVSAvoidvulnerability to malicious attacks
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent converts the harmful potential of hardware breakpoints into a beneficial security mechanism by placing corruption functions at breakpoint locations. When a breakpoint is triggered, instead of allowing arbitrary code execution, the system executes a corruption function that damages the program state, thereby transforming the debugging feature into an anti-tampering mechanism

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Solution Approach 2:

The patent introduces an intermediary exception handling mechanism between the hardware breakpoint trigger and the potential malicious code execution. The exception handler intercepts the breakpoint event and redirects execution to a safe corruption function, preventing direct access to potentially harmful code while maintaining the breakpoint mechanism for legitimate debugging

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If complete access to program code is provided to users, then ease of use and functionality is improved, but intellectual property is exposed to theft and unauthorized modification

Engineering Contradiction:
Improveuser access to programVSAvoidintellectual property loss
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent applies preliminary action by embedding corruption functions at strategic locations within the program code before the program is executed. These functions are pre-positioned to trigger automatically when specific memory addresses are accessed, preventing intellectual property theft before it can occur

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the execution parameters by modifying the exception handling behavior. Instead of allowing normal code execution or providing helpful error messages, the system changes the outcome to execute corruption functions that damage the program state, thereby protecting intellectual property while maintaining user access

Inventive Principle:
Principle #35Parameter changes

3Reliability

If exception handling is set to allow normal execution, then program reliability is maintained, but security vulnerabilities can be exploited for unauthorized operations

Engineering Contradiction:
Improveprogram execution continuityVSAvoidsecurity vulnerability exploitation
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent converts the potential harm of exploited security vulnerabilities into a benefit by designing the exception handler to execute corruption functions when vulnerabilities are detected. This transforms the vulnerability exploitation path into a protective mechanism that damages the program state instead of allowing unauthorized operations

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS8407523B2Method for protecting software programs
Publication Date: 2013.03.26 GUARDSQUARE NV
  • US8407523B2 patent drawing
  • US8407523B2 patent drawing
  • US8407523B2 patent drawing

AI summary

In order to protect a software program, at least one corruption function is included in the program. Also included in the program is at least one instruction that causes the program to be directed to the corruption function. An available breakpoint is then set such that, when the starting location of the corruption function is reached, an exception is generated and the handling of the exception causes the corruption function not to run. This has the effect that, if a malicious user attempts to use the available hardware breakpoint to perform unauthorized actions on the software program, the corruption function will run, and the software program will be unusable.