Executable File Protection via Hardware-Bound Constants

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current copy protection systems for executable files can be circumvented through tampering with hardware verification code, leading to unauthorized use, as they rely on comparing hardware information stored in licenses with the actual client hardware.

Innovation Solution

A method that binds nominal constants within executable code to client hardware information, where only the nominal constant enables the executable file's flow, involving retrieving and transforming unique hardware information to recover the constant, and using this process to ensure authorized use by comparing transformed constants with the license.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware information comparison is used for copy protection, then software protection is provided, but the system can be circumvented through tampering with hardware verification code

Engineering Contradiction:
Improvesoftware protectionVSAvoidunauthorized use through patching
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent transforms the protection mechanism by changing the parameter being verified from static hardware information to dynamic nominal constants. Instead of comparing fixed hardware IDs, the system uses mathematical constants that require specific transformation operations to recover, making simple hardware binding insufficient for circumvention.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary layer of transformation operations between the hardware verification and the software execution. The nominal constants act as intermediaries that must be properly transformed using hardware-derived keys, creating an additional security layer that prevents direct hardware tampering from compromising protection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If nominal constants are bound to hardware information, then protection against unauthorized use is enhanced, but the system complexity increases

Engineering Contradiction:
Improveprotection against unauthorized useVSAvoidtransformation and verification system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the complex transformation logic from the main software flow and implements it as separate, dedicated transformation operations. The nominal constants are extracted and stored separately, with their transformation requirements clearly defined, allowing the core software to remain relatively simple while the protection mechanism handles the complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If hardware information is transmitted to server for license generation, then activation control is provided, but communication overhead increases

Engineering Contradiction:
Improveactivation controlVSAvoidcommunication overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary transformation of hardware information into nominal constants during the activation process. The server generates and provides the transformed constants in advance, allowing the client to perform verification locally without requiring continuous communication. This preliminary action reduces ongoing communication overhead while maintaining activation control.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10628561B2Technique for enabling nominal flow of an executable file
Publication Date: 2020.04.21 DENUVO
  • US10628561B2 patent drawing
  • US10628561B2 patent drawing
  • US10628561B2 patent drawing

AI summary

A technique for enabling nominal flow of an executable file on a client is described. The executable file comprises executable code lacking at least one nominal constant, wherein only the nominal constant enables the nominal flow of the executable file and wherein a server has access to the at least one nominal constant. In a method aspect performed by the client, the method comprises retrieving hardware information of the client, wherein the hardware information is at least substantially unique. The method further comprises transmitting one of the hardware information and information derived therefrom to a server and, in turn, receiving at least one constant that has been transformed based on one of the hardware information and the information derived therefrom. The client then performs, using one of the hardware information and the information derived therefrom, an inverse transformation on the at least one transformed constant to recover the nominal constant. A server-side method aspect comprises receiving, from the client, one of the substantially unique hardware information and the information derived therefrom, transforming the at least one nominal constant using one of the hardware information and the information derived therefrom, and transmitting, to the client, the at least one transformed constant.