Compiler Obfuscation via Live Variable Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing compiler technologies face challenges in effectively protecting computer program values from reverse engineering, as standard obfuscation techniques rely on static parameters that can be easily revealed through dynamic analysis, leading to performance penalties and increased vulnerability to attacks.
Innovation Solution
A compiler device and method that perform live variable analysis to select and encode critical variables using static variables, making it difficult for automated analysis to reverse engineer the obfuscated values by using dynamic encoding based on liveness regions and encoding parameters.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If standard obfuscation techniques using static parameters are used, then implementation is simple, but values are easily revealed through dynamic analysis
Solution Approach 1:
The patent transforms static obfuscation parameters into dynamic ones by using live variable analysis to determine encoding parameters that change based on program execution context. Variables are encoded using other variables as encoding parameters, and these encoding parameters are selected dynamically based on liveness regions, making the obfuscation adaptive and resistant to static analysis attacks.
Solution Approach 2:
The patent changes the parameters used in obfuscation from fixed static values to dynamic variable values determined by live variable analysis. The encoding parameters are selected from variables that are not live in the current liveness region, creating a parameter selection mechanism that adapts to the program's execution state and prevents easy reverse engineering.
2Reliability
If multiple encodings are used to protect the whole program, then protection strength increases, but performance penalty increases
Solution Approach 1:
The patent applies encoding locally to specific variables based on their liveness regions rather than encoding the entire program uniformly. By selecting encoding parameters from variables not live in the current region and applying encoding only where needed, the patent provides targeted protection that minimizes performance overhead while maintaining security.
Solution Approach 2:
The patent applies partial encoding to critical variables identified through live variable analysis rather than encoding all variables throughout the program. This selective approach applies protection only where necessary based on variable liveness, reducing the overall performance penalty while maintaining adequate protection strength.
3Productivity
If a single encoding is used, then performance is maintained, but reverse engineering becomes easier
Solution Approach 1:
The patent creates dynamic encoding by selecting different encoding parameters based on live variable analysis results. Instead of using a single static encoding, the system dynamically chooses which variable to use as an encoding parameter based on the current liveness region, making reverse engineering difficult while maintaining performance through efficient parameter selection.
Solution Approach 2:
The patent uses live variable analysis as an intermediary mechanism to select encoding parameters dynamically. This intermediary analysis determines which variables are suitable for encoding based on their liveness regions, creating a bridge between performance considerations and security requirements without directly implementing complex multiple encodings.
4Reliability
If masking variables are added for protection, then security improves, but automated analysis can easily identify and remove them
Solution Approach 1:
The patent makes masking variables serve multiple functions: they act as both encoding parameters for protection and as legitimate program variables with their own liveness regions. This multi-functionality makes it difficult for automated analysis to distinguish between masking variables and regular program variables, as both serve essential computational purposes.
Solution Approach 2:
The patent uses the program's own variables and their liveness regions to provide the masking function, rather than introducing external dedicated masking variables. The variables already present in the program serve the dual purpose of computation and obfuscation, making the protection self-providing and harder to detect through automated analysis.
Data Source
AI summary
Some embodiments are directed to a compiler device (400) arranged for obfuscation of a computer program. The compiler device performs a live variable analysis on the computer program representation, and modifies the computer program representation to encode a first variable using at least a second variable as an encoding parameter.


