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:
- obtain program code for a first program configured for execution on a client device;
- scan the program code for the first program for usable code sequences;
- combine portions of the usable code sequences to form a first attestation program having a first attestation result;
- store the first attestation program having the first attestation result into a database in the memory of the system;
- transmit data associated with the first attestation program to the client device to run an attestation check against the first program executing on the client device, the attestation check generating a first attestation check result;
- receive the first attestation check result from the client device;
- compare the first attestation check result to the first attestation result associated with the first attestation program to determine if the first attestation result matches the first attestation check 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 attestation program having a first attestation result, the first attestation program formed from usable code sequences associated with program code of a first program, the memory further configured to store computer readable instructions that, when executed by the processor, cause the system to:
- transmit data associated with the first attestation program to the client device to run an attestation check against the first program executing on the client device, the attestation check generating a first attestation check result;
- receive the first attestation check result from the client device;
- and
- perform an action associated with the client device based on the first attestation check 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:
- scanning program code for a first program, configured for execution on a client device, for useable code sequences;
- combining portions of the usable code sequences to form a first attestation program having a first attestation result, and storing the first attestation program in the memory;
- running an attestation check against the first program executing on the client device in association with the first attestation program having the first attestation result;
- and
- performing an action associated with the client device based on the attestation check.
A method for detecting modifications to program data, comprising:
- scanning program code for a first program, configured for execution on a client device, for useable code sequences;
- combining portions of the usable code sequences to form a first attestation program having a first attestation result, and storing the first attestation program in the memory;
- transmitting data associated with the first attestation program to the client device to run an attestation check against the first program executing on the client device to produce a first attestation check result;
- receiving the first attestation check result from the client device;
- and
- performing an action associated with the client device based on the first attestation check result.
Dependencies are inferred from the claim text.