Segmented Code Integrity Checks for Anti-Tamper Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software security measures, such as obfuscation and copy protection, provide low-level security and are easily bypassed, making it difficult to protect software from unauthorized tampering, reverse engineering, and misuse, especially in online gaming environments where cheating can undermine honest players' experience.
Innovation Solution
The method involves dividing program code into a sequence of code segments with integrity checking portions that verify the integrity of adjacent segments, forming a linked chain of checks, which requires hackers to modify all segments in the sequence to tamper with attributes, making it extremely laborious and time-consuming to defeat the protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If obfuscated code is used to protect software, then reverse engineering becomes more difficult, but the code remains vulnerable to modification and is extremely difficult to debug
Solution Approach 1:
The code is divided into multiple segments with integrity checking portions that verify adjacent segments. This segmentation allows the system to maintain protection while enabling targeted debugging of specific segments without requiring full deobfuscation, resolving the contradiction between security and debuggability.
Solution Approach 2:
Integrity checking portions act as intermediaries between the obfuscated code segments and the debugging process. These checking portions can be selectively analyzed or modified for debugging purposes while leaving the rest of the obfuscated code intact, allowing debugging without full deobfuscation.
2Reliability
If copy protection techniques are implemented, then unauthorized copying is prevented, but the protection can be easily bypassed using existing reverse engineering tools
Solution Approach 1:
The protection mechanism is segmented into multiple distributed integrity checks throughout the code rather than a single centralized copy protection routine. This segmentation prevents existing reverse engineering tools from easily bypassing the protection, as they would need to compromise multiple distributed segments simultaneously.
Solution Approach 2:
Integrity checking portions are nested within the code segments themselves, creating a self-verifying structure. Each segment contains checking code that verifies its neighbors, creating a nested protection hierarchy that is resistant to conventional reverse engineering approaches.
3Ease of manufacture
If a single version of code is used for both distribution and debugging, then maintenance is simplified, but the code provides no protection against tampering
Solution Approach 1:
The unified code base is segmented into modules with integrated integrity checking portions. This allows the same code to serve both distribution and debugging purposes while maintaining protection, as the segmentation enables selective verification and controlled modification for debugging without compromising overall security.
Solution Approach 2:
The code segments perform self-verification through integrated integrity checking portions that automatically detect tampering. This self-service mechanism allows a single code version to provide both protection and debuggability, eliminating the need for separate protected and unprotected versions.
Data Source
AI summary
Anti-tamper techniques for protecting a program code portion against tampering provide for defining a sequence of code segments having a root-code segment and a plurality of sub-code segment. Each sub-code segment is provided with an integrity checking portion for checking the integrity of a target code segment. At runtime, the integrity checking portion of a given sub-code segment carries out a checking procedure on the respective target code segment to obtain a runtime result which is compared with a reference result to verify that the target portion of the program has not been tampered with.


