Software Obfuscation Scoring via Complexity Metrics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods fail to effectively quantify and improve the obfuscation of program files in software applications, particularly in Android APK files, making it difficult to evaluate the tamper resistance and quality of obfuscation, especially when dealing with large numbers of class files.
Innovation Solution
A method is developed to extract program code files from executable applications, convert them into text files, compute syntactical and program complexity metrics, generate scores, and apply obfuscation processing to selected files based on these metrics to enhance their protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If obfuscation techniques are applied to protect sensitive code portions, then the tamper resistance and security of the application is improved, but the complexity of evaluating and measuring the quality of obfuscation increases significantly
Solution Approach 1:
The patent replaces manual analysis methods with automated computational metrics and algorithms. Specifically, it uses program complexity metrics (cyclomatic complexity, Halstead metrics, nesting depth) and syntactical metrics (identifier patterns, control flow analysis) to automatically evaluate obfuscation quality, substituting the mechanical process of manual code inspection with systematic computational evaluation.
Solution Approach 2:
The patent transforms the qualitative assessment of obfuscation quality into quantitative measurements by defining specific parameters: program complexity metrics (cyclomatic complexity, Halstead volume, nesting depth) and syntactical metrics (identifier length distribution, control flow entropy). These parameter changes enable objective comparison and measurement of obfuscation effectiveness across different code portions.
2Reliability
If all program files are analyzed and obfuscated, then the security coverage is improved, but the processing time and computational resources increase significantly
Solution Approach 1:
The patent applies different levels of obfuscation to different parts of the codebase based on their sensitivity and complexity. It identifies security-sensitive code portions using the computed metrics and applies enhanced obfuscation only to those specific files, rather than uniformly processing all files. This local quality approach optimizes security coverage while reducing overall processing time.
Solution Approach 2:
The patent computes metrics for all program files but applies obfuscation processing selectively to only those files that exceed threshold values for security sensitivity or complexity. This partial action approach avoids the excessive processing time that would result from analyzing and obfuscating every single file, while still achieving comprehensive security coverage for critical portions.
3Measurement precision
If manual analysis of disassembled files is performed to retrieve sensitive information, then the ability to identify security issues is improved, but the time required and expertise needed increase significantly
Solution Approach 1:
The patent enables the code analysis system to automatically perform tasks that previously required manual expert analysis. By computing program complexity metrics and syntactical metrics automatically, the system serves itself in identifying security-sensitive code portions without requiring manual disassembly and analysis, thereby maintaining high detection accuracy while dramatically reducing analysis time and expertise requirements.
Data Source
Figure 1
Figure 2
Figure 3A~3D
AI summary
The invention relates to a method of selecting program files of an executable software application, comprising: extracting program text files (CF) from an executable application file (APF); for each program text file, computing at least one syntactical metrics or program complexity metrics (QT1-QTn), and computing a score (FMT) based on the computed metrics; and generating a list (SFL) of program text files selected as a function of comparisons of the computed scores with threshold values.