Anti-debug System Using Undocumented Kernel Objects

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing anti-debug techniques rely on internal operating system interfaces, making them vulnerable to circumvention by hackers through hooking functions, and are easily detected by overwriting known flags or searching for debug utility names, thereby failing to effectively prevent malicious debugging attempts.

Innovation Solution

The anti-debug system directly interacts with essential, undocumented kernel objects to detect and respond to improper debug attempts by setting and reading these objects, hiding and halting unauthorized debugging processes without relying on internal interfaces, thereby making it difficult for attackers to detect or subvert the anti-debug measures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If internal operating system interfaces are used for anti-debug techniques, then the anti-debug functionality can be implemented, but the system becomes vulnerable to circumvention by hackers through hooking functions

Engineering Contradiction:
Improveanti-debug effectivenessVSAvoidvulnerability to hooking attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent uses undocumented kernel objects as intermediaries to detect debug attempts. Instead of directly using documented OS interfaces that can be hooked, the system interacts with hidden kernel objects (such as EPROCESS, ETHREAD, and kernel debugger objects) that serve as mediators between the anti-debug mechanism and the debug detection function, thereby preventing direct hooking attacks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts the anti-debug functionality from documented OS interfaces and relocates it to undocumented kernel objects. By taking out the detection logic from accessible interfaces and embedding it in hidden kernel structures, the system removes the vulnerability point that hackers could hook, while maintaining the core anti-debug capability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If known flags in documented operating system structures are checked to detect debugging, then the detection can be implemented, but hackers can easily overwrite these flags to hide their debug attempts

Engineering Contradiction:
Improvedebug detection capabilityVSAvoidease of flag overwriting by attackers
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

Instead of directly checking documented flags that attackers can overwrite, the patent uses undocumented kernel objects as intermediaries. These hidden objects (such as kernel debugger objects and process structure objects) mediate the detection process, allowing the system to indirectly verify debug states without exposing detectable flag positions that attackers could manipulate.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the detection parameters from documented flag values to undocumented kernel object attributes. By shifting from checking known flags (which have fixed, documentable locations) to examining hidden kernel object states (which have undocumented, changing structures), the system makes it difficult for attackers to know what to overwrite, as these parameters are not publicly documented.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If documented operating system structures are used for anti-debug detection, then the implementation is straightforward, but the structures can be easily identified and targeted by attackers

Engineering Contradiction:
Improveease of anti-debug implementationVSAvoidvisibility to attackers
Core Design Contradiction:
Ease of manufactureVSObject-affected harmful factors

Solution Approach 1:

The patent uses undocumented kernel objects as hidden intermediaries that perform anti-debug detection without being visible to attackers. These objects act as secret mediators between the protected process and potential debuggers, enabling detection functionality while remaining invisible and inaccessible to malicious actors who only have access to documented interfaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies local quality by making specific kernel objects undocumented and hidden while keeping the overall system interface documented. The anti-debug functionality is localized to specific hidden kernel structures (such as particular process objects, thread objects, or kernel debugger objects) that are not publicly documented, creating localized security zones that are invisible to attackers.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11409635B2Hacker-resistant anti-debug system
Publication Date: 2022.08.09 NIGHTWING GROUP LLC
  • US11409635B2 patent drawing
  • US11409635B2 patent drawing
  • US11409635B2 patent drawing

AI summary

A computer system includes an operating system, a memory coupled to the operating system, and a processor (e.g., an anti-debug processor) coupled to the operating system. The operating system receives, from a debug process, a request to create an essential debug object for attachment to a target process. The anti-debug processor scans a kernel memory of the operating system for the essential debug object and verifies a presence of the essential debug object in the kernel memory, and scans the kernel memory to identify a process that has stored in the kernel memory the essential debug object. The anti-debug processor then halts the debug process, without using an internal interface or function of the operating system, thereby preventing the debug process from attaching to the target process.