Embedded Firmware Component Identification Without Source Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software component identification methods in embedded system firmware are inadequate, especially in the absence of original source code, leading to incomplete and inaccurate software bill of materials, which compromises supply chain security and risk management.

Innovation Solution

A method and system for software component identification in embedded system firmware that extracts indicator files, calculates hash values, disassembles files to derive function-level features and control flow graphs, and compares these features with a database to identify components, even without original source code, using tools like binwalk, disassemblers, and similarity measurement algorithms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional software component identification methods are used in embedded system firmware, then the process can be simplified, but the identification accuracy and completeness deteriorate significantly, especially when original source code is unavailable

Engineering Contradiction:
Improvesoftware component identification accuracyVSAvoididentification system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the firmware analysis process into multiple stages: extracting indicator files, extracting features (hash values, semantic information, control flow graphs, function-level features), comparing with database, and deriving identification results. This segmentation allows complex identification to be broken down into manageable steps, improving accuracy while maintaining system organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from traditional single-dimension identification (relying on source code availability) to multi-dimensional identification by extracting and analyzing multiple feature types simultaneously: hash values for exact matching, semantic information for content understanding, control flow graphs for structural analysis, and function-level features for detailed characterization. This dimensional expansion enables accurate identification even without original source code.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If comprehensive feature extraction is performed on indicator files, then software component identification accuracy improves, but processing time and computational resources increase

Engineering Contradiction:
Improvecomponent identification accuracyVSAvoidanalysis processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary feature extraction and database preparation in advance. Indicator files are extracted and their features (hash values, semantic information, control flow graphs, function-level features) are computed and stored in a database before actual identification needs arise. This preliminary action enables fast comparison and identification during runtime, reducing processing time while maintaining comprehensive analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and analyzes multiple feature types beyond what might be minimally necessary (excessive action), including hash values, semantic information, control flow graphs, and function-level features. This comprehensive extraction ensures high identification accuracy, and the system can prioritize different feature types based on computational resources and time constraints, achieving a balance between thoroughness and efficiency.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of information

If multi-dimensional feature extraction and database comparison are implemented, then software bill of materials completeness improves, but system complexity and implementation difficulty increase

Engineering Contradiction:
Improvesoftware bill of materials completenessVSAvoididentification system structure
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent creates a universal identification system that can handle multiple scenarios: identification with original source code available, identification without source code, detection of obfuscated components, and analysis of third-party libraries. The same multi-dimensional feature extraction and database comparison mechanism works across all these cases, providing complete software bill of materials while managing system complexity through a unified approach.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary database that stores pre-extracted features of known software components as a reference medium. This database acts as a mediator between the firmware analysis process and the final identification results, enabling comprehensive comparison without directly complexifying the main analysis workflow. The intermediary structure organizes complex data relationships in a manageable way.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250321732A1Method and system of software component identification in embedded system firmware
Publication Date: 2025.10.16 DELTA ELECTRONICS INC(CN)
  • US20250321732A1 patent drawing
  • US20250321732A1 patent drawing
  • US20250321732A1 patent drawing

AI summary

A method and system of software component identification in an embedded system firmware are disclosed. The method comprises: extracting the indicator files from a firmware file; extracting features from each indicator file, the features comprising: a hash value, semantic information, control flow graph information, and function-level feature information; comparing the features with a database, comprising a plurality of known software components, along with the features of each known indicator file within each known software component, to derive an indicator file identification result for each indicator file; and based on the indicator file identification results, determining a software component identification result of the firmware file.