Systems and method for identifying modified program data
AssigneeNintendo Co., Ltd.
InventorsDavid Tran, Eugene Borisov, Tanner Stevens
Life of this patent
Estimating the term…
Abstract
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).
Claims20
A system for detecting modifications to program data, comprising:
- a processor;
- and
- a memory configured to store computer readable instructions that, when executed by the processor, cause the system to:
- use code sequences from program code of a first program, combine portions of the code sequences to form a first program for detecting whether a software program has been modified, wherein the first program includes a first output;
- store the first program having the first output into a database in the memory of the system;
- transmit data associated with the first program to a client device, wherein
- the client device is configured to run a first test against the software program executing on the client device,
- the first test is an attestation check,
- the first test generates a first test result, and
- the first test result is a first attestation check result;
- receive the first test result from the client device;
- compare the first test result to the first output associated with the first program to determine if the first output matches the first test result;
- and
- perform an action associated with the client device based on the comparison.
A system for detecting modifications to program data, comprising:
- a processor;
- and
- a memory configured to store a first program having a first output, wherein the first program is formed from code sequences associated with program code of a software program, and the memory is further configured to store computer readable instructions that, when executed by the processor, cause the system to:
- transmit data associated with the first program to a client device for running a first test against the software program executing on the client device, wherein
- the first test is an attestation check,
- the first test generates a first test result, and
- the first test result is a first attestation check result;
- receive the first test result from the client device;
- and
- perform an action associated with the client device based on the first test result.
A non-transitory computer readable storage medium storing computer readable instructions that, when executed by a processor a system, cause the system to provide execution comprising:
- combining portions of code sequences to form a first program for detecting whether a software program, executing on a client device, has been modified, wherein the first program includes a first output;
- running a first test against the software program executing on the client device, wherein
- the first test is run in association with the first program having the first output, and
- the first test is an attestation check;
- and
- performing an action associated with the client device based on the first test.
A method for detecting modifications to program data, comprising:
- scanning program code for a software program, configured for execution on a client device, for code sequences;
- combining portions of the code sequences to form a first program having a first output;
- transmitting data associated with the first program to the client device to run a first test against the software program executing on the client device to produce a first test result, wherein
- the first test is an attestation check, and
- the first test result is a first attestation check result;
- receiving the first test result from the client device;
- and
- performing an action associated with the client device based on the first test result.
Dependencies are inferred from the claim text.