Virtual Instruction Handlers for Code Obfuscation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing code protection techniques, such as obfuscation, often increase the complexity of reverse-engineering attempts but can negatively impact execution speed, and not all code requires the same level of protection.
Innovation Solution
A method that involves rewriting sections of computer software code into virtual instructions corresponding to different handlers, allowing for varying levels of obfuscation and execution speed based on specific indicators, enabling targeted protection without uniformly degrading performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If code obfuscation is applied to protect computer software, then reverse-engineering complexity increases, but execution speed deteriorates
Solution Approach 1:
The patent applies different obfuscation levels to different sections of code based on their sensitivity and protection requirements. Critical sections receive high obfuscation with corresponding handlers that execute slower but provide strong protection, while non-critical sections use minimal or no obfuscation to maintain fast execution. This selective approach resolves the contradiction by localizing the impact of obfuscation to only where it is necessary.
Solution Approach 2:
The patent divides the code base into multiple sections with different protection requirements and applies appropriate obfuscation strategies to each segment. By segmenting the code and using section-specific handlers, the system achieves high protection for critical sections without uniformly degrading the execution speed of the entire program.
2Reliability
If uniform obfuscation is applied to all code sections, then protection level increases, but overall execution speed deteriorates
Solution Approach 1:
Instead of applying uniform obfuscation, the patent implements local quality by assigning different obfuscation intensities to different code sections based on their specific protection needs. This allows the system to maintain high protection levels for critical sections while preserving execution efficiency in non-critical sections, thereby resolving the contradiction between uniform protection and overall performance.
3Reliability
If high obfuscation is applied to critical sections, then security is improved, but execution time increases
Solution Approach 1:
The patent changes the obfuscation parameter (intensity level) based on the criticality of the code section. For highly critical sections, high obfuscation parameters are applied with corresponding handlers that prioritize security over speed. For less critical sections, lower obfuscation parameters are used, maintaining faster execution. This parameter-based differentiation resolves the contradiction by allowing high security where needed without unnecessarily increasing execution time elsewhere.
Data Source
Figure 1
Figure 2A~2B
Figure 3A~3B
AI summary
A method for protecting computer software code is disclosed. In the embodiment, the method involves receiving instructions corresponding to computer software code for an application, the instructions including a first section of instructions to protect that is indicated by a first indicator and a second section of the instructions to protect that is indicated by a second indicator, rewriting the first section of instructions into a first section of virtual instructions, and rewriting the second section of instructions into a second section of virtual instructions, wherein the first section of instructions includes a first virtual instruction that corresponds to a first handler and the second section of virtual instructions includes a second virtual instruction that corresponds to a second handler, the first handler having different properties than the second handler.