Software Argument and Function Protection via Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software protection methods are inadequate in preventing unauthorized use, as they require frequent patching and are vulnerable to attacks like code-lifting and manipulation, especially when executable software and libraries are dynamically interconnected.
Innovation Solution
The method involves applying cryptographic functions to both arguments and functions within the software, ensuring that only authorized software libraries and executable software can determine the original values, thereby preventing unauthorized use and manipulation by encrypting and signing them.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire software is patched by encrypting the executable code, then security against unauthorized use is improved, but the complexity of maintenance increases due to frequent repatching with every software change
Solution Approach 1:
The patent segments the protection mechanism into two independent parts: protecting arguments (input data) and protecting functions (executable code). This allows selective application of protection to specific argument-function pairs rather than requiring complete re-patching of the entire software. When software changes occur, only the affected argument-function pairs need protection updates, not the entire software system.
Solution Approach 2:
The patent applies protection functions to arguments before they are passed to software functions, and protects functions before execution. This preliminary protection ensures that even if software changes occur later, the protected arguments and functions maintain their security properties without requiring immediate re-patching.
2Reliability
If the executable code is encrypted to prevent unauthorized use, then security is improved, but the ability to modify and update software decreases
Solution Approach 1:
By segmenting protection into argument-level and function-level components, the patent enables granular control over what is protected. This allows developers to maintain flexibility in modifying software while preserving security for critical argument-function interfaces. Changes can be made to unprotected portions of the software without compromising the security of protected interfaces.
Solution Approach 2:
The patent applies different protection qualities to different parts of the software system. Critical arguments and functions that require security receive protection through cryptographic functions, while other parts of the software can remain unprotected and freely modifiable. This local differentiation maintains both security and flexibility.
3Reliability
If cryptographic protection is applied to arguments and functions, then unauthorized use is prevented, but the computational overhead increases
Solution Approach 1:
The patent applies cryptographic protection only to specific arguments and functions that require security, rather than protecting the entire software system. This partial application reduces computational overhead while maintaining necessary protection levels for critical components.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
A method for protecting software against unauthorized use is proposed, wherein the software comprises executable software and a software library that provides predetermined functions to the executable software for predetermined arguments. The method comprises: applying a first function to a predetermined argument to generate a protected argument by the executable software such that the predetermined argument can only be determined by applying a first inverting function to the protected argument; and/or applying a second function to a predetermined function to generate a protected function by the software library such that the predetermined function can only be determined by applying a second inverting function to the protected function. The predetermined argument can only be determined by a software library that includes the first inverting function.The same applies to the predetermined function. This increases the security of the software.