Software Obfuscation Scoring via Complexity Metrics

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetamper resistanceVSAvoidevaluation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If all program files are analyzed and obfuscated, then the security coverage is improved, but the processing time and computational resources increase significantly

Engineering Contradiction:
Improvesecurity coverageVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvedetection accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3467691B1Method of selecting software files
Publication Date: 2020.08.26 ESHARD
  • EP3467691B1 patent drawingFigure 1
  • EP3467691B1 patent drawingFigure 2
  • EP3467691B1 patent drawingFigure 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.