Attestation Program Code Reuse for Remote Software Modification Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for detecting modified video game software in multiplayer environments are limited, as they require cooperation from client-side devices and can be bypassed by attackers, leading to unfair advantages and security risks.

Innovation Solution

The use of attestation programs that employ code reuse techniques, such as ROP/JOP, to automatically generate and combine existing code sequences for remote detection of software modifications, eliminating the need for client-side cooperation and patch deployment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional detection methods are used, then client-side cooperation is required, but this allows attackers to bypass detection and gain unfair advantages

Engineering Contradiction:
Improvedetection reliabilityVSAvoidcheating and security risks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an intermediary attestation program that acts as a mediator between the game executable and the detection system. This attestation program verifies the integrity of the game executable by checking code sequences and generating attestation data, which is then sent to the server for verification. This intermediary layer prevents direct manipulation by attackers while maintaining reliable detection without requiring client-side cooperation for the core verification logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If conventional detection methods are used, then client-side devices must participate, but this increases system complexity and requires frequent patch deployment

Engineering Contradiction:
Improvesoftware integrity verificationVSAvoidclient-side detection infrastructure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the core detection logic from the client-side device and relocates it to the server system. The attestation program contains the verification logic, and the server receives attestation data from multiple clients and performs the actual verification against known good values. This extraction reduces client-side complexity while maintaining reliable software integrity verification through centralized server-side processing.

Inventive Principle:
Principle #2Taking out (Extraction)

3Extent of automation

If code reuse techniques are employed, then remote detection capability is enhanced, but the system requires automatic generation and combination of code sequences

Engineering Contradiction:
Improveremote detection capabilityVSAvoidcode sequence generation system
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-defining code sequences within the attestation program that can be automatically combined and executed. These code sequences are prepared in advance to perform specific verification functions, such as checking game executable integrity. The system automatically selects and combines these pre-prepared sequences based on the verification needs, enabling remote detection without requiring complex real-time code generation or manual intervention.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11684857B2Systems and method for identifying modified program data
Publication Date: 2023.06.27 NINTENDO CO LTD
  • US11684857B2 patent drawing
  • US11684857B2 patent drawing
  • US11684857B2 patent drawing

AI summary

The technology described implements attestation programs that employ “code reuse” techniques. In particular, the technology relates to auto-generating attestation programs for, among other aspects, detecting whether a program has been modified. In one non-limiting example, the technology uses a tool that scans a software program (e.g., a video game) code for usable code sequences. The tool can automatically combine code sequences to generate a large number of attestation programs of different variety (e.g., memory checks, hashing).