Anti-Debugger with Spatially Separate Detection and Response Threads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing anti-debugger systems in online gaming are easily detectable and bypassable, allowing cheaters to modify game applications by attaching debuggers, which undermines fair competition.

Innovation Solution

Implementing a debugger protection mechanism with spatially and temporally separate detection and response portions, where the detection occurs on one thread and the response on another, making it difficult to detect, bypass, or remove, and can halt or obfuscate game functionality upon debugger detection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a simple debugger checker is installed in game code to prevent users from attaching a debugger, then debugger detection capability is provided, but the checker is easy to detect and circumvent

Engineering Contradiction:
Improvedebugger detection capabilityVSAvoidease of circumvention
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The anti-debugger system is divided into multiple independent components: a detection component that monitors for debugger attachment, a communication component that transfers detection results, and a response component that executes countermeasures. This segmentation distributes functionality across separate code modules, making the system harder to detect and circumvent while maintaining reliable debugger detection capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A message passing mechanism serves as an intermediary between the detection component and the response component. The detection component communicates debugger status through structured messages rather than direct function calls, adding a layer of abstraction that complicates reverse engineering and circumvention attempts while preserving the reliability of debugger detection

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If debugger detection and response are implemented on the same thread, then the system is simpler to implement, but the detection mechanism is easier to detect and bypass

Engineering Contradiction:
Improveimplementation simplicityVSAvoiddetectability of detection mechanism
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

The system separates detection and response operations into different threads of execution. The detection thread continuously monitors for debugger attachment while the response thread processes detection results and executes countermeasures. This temporal and spatial segmentation makes the detection mechanism harder to detect and bypass while maintaining implementation feasibility through standard multi-threading techniques

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The detection component operates periodically on its dedicated thread, checking for debugger attachment at scheduled intervals rather than continuously blocking execution. This periodic action on a separate thread makes the detection mechanism less obvious and harder to bypass while keeping the implementation manageable through standard timing mechanisms

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8356356B2Anti-debugger comprising spatially and temporally separate detection and response portions
Publication Date: 2013.01.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8356356B2 patent drawing
  • US8356356B2 patent drawing
  • US8356356B2 patent drawing

AI summary

An anti-debugger comprises spatially and temporally separate detection and response portions. In an example configuration, the anti-debugger is implemented into a game system for detecting and responding to a debugger attached to a game application. The detection portion is implemented on one thread of the system and the response portion is implemented on another thread of the system. When a debugger is detected, a message indicative of the detection is provided to a thread interface. The thread interface provides the message to the response portion. After a period of time has elapsed, the response portion disables the functionality of the game application, such as by halting the game execution and/or obfuscating game performance.