Open-Source Software Identification from Binary Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

It is challenging to verify the licenses for open-source software packages, especially when the source code is converted into binary code, as ordinary users and programmers find it difficult to identify the original source code and its corresponding license information from binary files.

Innovation Solution

A method and system are provided to identify open-source software packages and their versions from binary files by using identifiers preserved during compilation, which involve accessing a database of open-source software packages, extracting matching identifiers from the binary files, and outputting the corresponding package and version information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If source code is converted to binary code for execution, then software can be directly executed by computer, but license verification becomes difficult

Engineering Contradiction:
Improvedirect execution capabilityVSAvoidlicense information accessibility
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent applies preliminary action by embedding license information and unique identifiers into the binary file during the compilation process, before the binary file is executed. This ensures that the license verification data is already present in the binary file, eliminating the need to access original source code later. The identifier is embedded in a way that persists through compilation, allowing later verification of the binary file's license status.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If open-source software is made easily accessible via Internet, then community development and rapid prototyping are enabled, but copyright violation increases

Engineering Contradiction:
Improvesoftware development speedVSAvoidcopyright compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback by creating a verification system that checks the embedded identifier in the binary file against a database of registered open-source software. This feedback mechanism allows automatic detection of copyright compliance status, enabling developers to verify licenses quickly while maintaining accountability. The system provides immediate feedback on whether the binary file complies with open-source licensing requirements.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent uses an intermediary approach by introducing a unique identifier as a mediator between the binary file and the license verification system. This identifier acts as a bridge that connects the compiled binary to its original source code and license information without requiring direct access to the source code. The intermediary identifier enables verification while preserving the benefits of binary execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If identifier is embedded in binary file, then license verification is enabled, but file size increases

Engineering Contradiction:
Improvelicense identification accuracyVSAvoidbinary file size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by embedding only the essential identifier information locally within the binary file, rather than including the entire source code or comprehensive license data. This selective embedding places only the necessary verification data (unique identifier string) into the binary file, maintaining minimal file size increase while enabling accurate license identification. The full license information remains in the centralized database.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10642965B2Method and system for identifying open-source software package based on binary files
Publication Date: 2020.05.05 INSIGNARY INC
  • US10642965B2 patent drawing
  • US10642965B2 patent drawing
  • US10642965B2 patent drawing

AI summary

Provided are a method and system for identifying an open-source software package from a binary file for which an open-source license is to be checked. The method includes: accessing a database generated to include a plurality of open-source software packages having a plurality of open-source files and open-source software package version information, based on a plurality of first identifiers included in each of the plurality of open-source files; receiving the binary file; extracting at least one second identifier included in the binary file by performing a string search on the binary file; and extracting at least one first identifier that matches the at least one second identifier from the database, and outputting an open-source software package and open-source software package version information corresponding to the at least one first identifier.