Software Classification via User Interface Signatures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software classification techniques are limited in their ability to automatically classify software without user intervention, particularly during the installation process, and often rely on static or dynamic analysis methods that are not comprehensive enough for accurate identification.

Innovation Solution

A method that involves identifying and analyzing user interface signatures from a group of user interfaces associated with the software, using computer vision to determine characteristics such as color and text, and generating a hash value to classify the software based on known signature information stored on a server device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static or dynamic analysis methods are used for software classification, then the classification process can be performed, but the accuracy and comprehensiveness of software identification is insufficient

Engineering Contradiction:
Improvesoftware classification accuracyVSAvoidclassification method complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the software classification process into multiple distinct phases: static analysis phase (examining executable files, metadata, registry information), dynamic analysis phase (monitoring runtime behavior, API calls, system interactions), and user interface analysis phase (capturing and analyzing UI screenshots, text, and interaction patterns). Each phase generates specific features that are combined to form a comprehensive software fingerprint, thereby improving classification accuracy without overwhelming complexity through structured modularization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs multiple parameter transformation techniques across different analysis phases. Static analysis extracts parameters from executable files, metadata, and registry entries. Dynamic analysis transforms runtime behavior into measurable parameters such as API call sequences and system interaction patterns. UI analysis converts visual elements into parameters including screenshot hashes, text extraction, and layout characteristics. These transformed parameters from multiple sources are integrated to create a comprehensive classification signature.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If comprehensive analysis methods are used to improve software identification accuracy, then classification precision improves, but the time and resources required for analysis increase

Engineering Contradiction:
Improvesoftware identification accuracyVSAvoidclassification processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements preliminary action through static analysis performed before software execution. During this phase, the system extracts and analyzes executable file properties, metadata, embedded strings, and registry information to create an initial classification profile. This preliminary classification provides early insights that can guide subsequent dynamic analysis, allowing the system to focus resources on cases that require more intensive examination, thereby reducing overall processing time while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by selectively intensifying analysis based on initial findings. If static analysis provides sufficient confidence for classification, the system may stop there. If uncertainty remains or the software exhibits suspicious characteristics, the system progressively engages dynamic analysis and UI analysis to the extent needed. This staged approach ensures comprehensive accuracy when necessary while avoiding unnecessary processing time for straightforward classification cases.

Inventive Principle:
Principle #16Partial or excessive action

3Extent of automation

If automatic software classification is implemented, then user intervention is reduced, but the system requires comprehensive analysis capabilities that increase operational complexity

Engineering Contradiction:
Improveautomatic classification capabilityVSAvoidsystem operational complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The patent implements self-service automation where the classification system autonomously performs all analysis phases without user intervention. The system automatically executes static analysis on software binaries, launches controlled dynamic analysis sessions, captures UI interactions, and processes all extracted features through machine learning models to generate classifications. This complete automation eliminates manual analysis steps while the modular architecture manages operational complexity through standardized interfaces and automated workflow orchestration.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces intermediary components that mediate between different analysis phases and the final classification output. Feature extraction modules serve as intermediaries that standardize data from static analysis, dynamic analysis, and UI analysis into unified feature vectors. Machine learning models act as intermediaries that process these features and generate classification predictions. These intermediary layers decouple the complexity of multi-phase analysis from the user interface, enabling automatic classification while managing system complexity through standardized intermediate representations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11250034B2Classification of software based on user interface elements
Publication Date: 2022.02.15 JUNIPER NETWORKS INC
  • US11250034B2 patent drawing
  • US11250034B2 patent drawing
  • US11250034B2 patent drawing

AI summary

A device may receive an instruction to classify software. The device may identify a group of one or more user interfaces associated with the software based on receiving the instruction to classify the software. The device may determine a group of one or more user interface signatures associated with the group of one or more user interfaces. A user interface signature may include information, associated with a user interface in the group of one or more user interfaces, that may be used to classify the software. The device may generate information that identifies a classification of the software based on the group of one or more user interface signatures and based on known signature information. The known signature information may include information that corresponds to a correct software classification. The device may output the information that identifies the classification of the software.