Executable File Protection via Class Group Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for protecting executable files against reverse engineering fail to prevent bypass of protection codes, as the protected files can be easily restored and modified, allowing for extraction and replacement of protection mechanisms.
Innovation Solution
A file protection method that classifies executable file classes into multiple groups, adds loading codes for sequential random loading and integrity codes for verification, and regenerates the package file to ensure integrity checks are performed during execution, thereby preventing bypass of protection codes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If protection code is added to encrypted executable file, then file security is improved, but protection code can be easily bypassed by extracting classes in restored state
Solution Approach 1:
The executable file is divided into multiple class groups that are loaded sequentially rather than all at once. This segmentation prevents attackers from extracting and replacing all protection codes simultaneously, as each group must be processed in order through the integrity verification mechanism.
Solution Approach 2:
Integrity verification is performed in advance before allowing execution of each class group. The loading code in one class group verifies the integrity of subsequent class groups before they are executed, preventing bypass attacks before they can occur.
2Speed
If classes are loaded all at once to memory, then execution speed is improved, but integrity verification cannot be performed on class groups
Solution Approach 1:
Classes are segmented into multiple groups that are loaded sequentially rather than all at once. This allows the system to verify integrity of each group before execution while maintaining reasonable performance through efficient sequential loading and execution.
Solution Approach 2:
The sequential loading and verification process is designed to minimize interruptions to the execution flow. While verification occurs between groups, the overall execution maintains continuity by quickly processing each group through verification and execution cycles without unnecessary delays.
3Reliability
If multiple class groups are created with loading codes, then protection against bypass is improved, but device complexity increases
Solution Approach 1:
The loading code serves multiple functions: it loads the class group into memory, verifies the integrity of subsequent class groups, and controls the sequential execution flow. This multi-functionality reduces the need for separate dedicated verification components, thereby limiting the increase in system complexity.
Solution Approach 2:
The integrity verification functionality is merged into the existing class loading mechanism rather than being implemented as a separate system. The loading code simultaneously performs loading and verification tasks, combining multiple protection functions into a unified process that limits complexity growth.
Data Source
AI summary
A file protection method of a computer apparatus including a processor, the method including extracting classes from an executable file of a package file, classifying the classes into class groups, adding a loading code to a first class group among the class groups, the loading code configured to cause sequential loading of the class groups to a memory in a random loading order in response to execution of the package file, adding an integrity code to a second class group among the class groups, the integrity code configured to verify an integrity of a corresponding class group among the class groups or a previous class group among the class groups, the previous class group including the loading code configured to cause the corresponding class group to load, and regenerating the package file using the class groups after the adding the loading code and the adding the integrity code.


