Executable File Protection via Hardware-Bound Constants
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If nominal constants are bound to hardware information, then protection against unauthorized use is enhanced, but the system complexity increases
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.
3Reliability
If hardware information is transmitted to server for license generation, then activation control is provided, but communication overhead increases
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.
Data Source
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.


