Code Protection Module for Software Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for protecting software code, particularly in intermediate language form, are vulnerable to decompilation, forgery, and reverse engineering due to intrinsic characteristics of intermediate code, and existing encryption and protection mechanisms fail to prevent unauthorized modification and analysis.
Innovation Solution
A code protection method that couples application code with a protection module, selectively encrypts and decrypts code at execution time, and re-encrypts it periodically, making it difficult to execute or analyze without the protection module, and prevents direct access to library files by converting or deleting them and providing access through an encrypted protection module.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If code is encrypted to prevent forgery and reverse engineering, then security is improved, but the electronic device cannot execute the encrypted file
Solution Approach 1:
The protection module is integrated into the application package in advance, establishing a trusted execution environment before the encrypted code needs to be executed. This preliminary setup allows the system to have both encryption for security and decryption capability for executability ready beforehand
Solution Approach 2:
The protection module acts as an intermediary between the encrypted code and the processor. It receives the encrypted intermediate language code, decrypts it using embedded key material, and provides the decrypted code to the processor for execution, thus resolving the contradiction between encrypted storage and executable state
2Reliability
If a protection module is added to protect code, then security is improved, but the code can be forged by deleting the protection module
Solution Approach 1:
The protection module is merged with the application package as an integrated component rather than a separate external file. The module is embedded within the package structure itself, making it impossible to delete independently while maintaining the application's functionality
Solution Approach 2:
The protection module is nested within the application package structure, with the encrypted code and protection module forming a hierarchical relationship where the protection module is contained within the package that it protects, creating a self-contained protected unit
3Reliability
If all code is protected with a protection module, then security is improved, but the complexity of the protection system increases
Solution Approach 1:
Only specific portions of the code that require protection are encrypted and associated with the protection module, while other code remains in plain form. This selective approach provides security where needed without unnecessarily complicating the entire system
Solution Approach 2:
The protection module uses a simplified decryption approach that decrypts code at execution time without requiring complex pre-processing or analysis of all code sections. This partial action on only the necessary code portions reduces overall system complexity
Data Source
AI summary
A code protection method may include storing, using a processor of a computer, a package file that includes files for an application on a storage device of the computer; transforming, at the processor, a protection target method and/or function selected from a file that includes an execution code among the files, or converting or deleting a library file among the files; regenerating the package file by adding, to the package file, a first protection module file for restoring the transformed protection target method and/or function or a second protection module file for restoring the library file; and providing the regenerated package file over a network.


