Binary Instrumentation for Software Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for integrating two software programs are not optimal, as they often result in undesirable delays or detection of the integrated software, particularly in digital rights management, and require access to the source code of the first software program binary.

Innovation Solution

A method and system that divide a second software program into segments and insert instrumentation points into a first software program binary, allowing context switching between the two programs during execution, enabling the second program to execute at various times and locations without simultaneous execution, while maintaining the integrity of the first program.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the second software program is integrated into the first software program binary using existing methods, then the integration can be achieved, but it causes undesirable delays or detection and requires access to the source code of the first software program

Engineering Contradiction:
Improveintegration processVSAvoidexecution delay
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The second software program is divided into multiple segments that can be executed independently at different instrumentation points within the first software program. This segmentation allows the integrated functionality to be distributed throughout execution rather than bundled as a single delayed block, reducing overall execution time while maintaining integration benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The integration method uses dynamic instrumentation points that can be inserted at various locations within the first software program binary. This allows the second program to execute at optimal moments during the first program's execution flow, transforming static integration into dynamic, time-aware integration that minimizes delays.

Inventive Principle:
Principle #15Dynamics

2Ease of manufacture

If the second software program is integrated into the first software program binary using existing methods, then the integration can be achieved, but it enables detection of the integrated software and requires access to the source code

Engineering Contradiction:
Improveintegration processVSAvoiddetection resistance
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

The method introduces instrumentation points as intermediary structures within the first software program binary that trigger execution of the second program's segments. These instrumentation points act as mediators that enable integration without requiring source code access to the first program, as they can be injected into compiled binaries directly, thereby reducing detectability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The second software program is copied into segmented form and distributed across multiple instrumentation points within the first program binary. This copying approach allows the second program to be embedded without modifying the original first program's source code or structure, making the integration harder to detect while maintaining functionality.

Inventive Principle:
Principle #26Copying

3Productivity

If the second software program executes simultaneously with the first software program, then both programs can run at the same time, but it complicates the execution context and requires source code access

Engineering Contradiction:
Improveexecution efficiencyVSAvoidexecution context
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting the second program and executing its segments at different instrumentation points rather than simultaneously, the method simplifies the execution context. Each segment can be triggered at appropriate moments in the first program's execution without requiring complex coordination between simultaneous processes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The instrumentation points are distributed throughout the execution flow of the first software program, allowing the second program's segments to be executed continuously at natural breakpoints in the first program's execution. This maintains continuous productive action without requiring simultaneous execution contexts.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10769048B2Advanced binary instrumentation for debugging and performance enhancement
Publication Date: 2020.09.08 PAYPAL INC
  • US10769048B2 patent drawing
  • US10769048B2 patent drawing
  • US10769048B2 patent drawing

AI summary

Systems and methods for integrating, into a first software program binary, segments of a second software program are disclosed. The integration causes the execution of segments of the second software program as the first software program binary is executed. In one embodiment, a second software program, such as an embeddable software application, is received and divided into a plurality of segments, each segment corresponding to a portion of the embeddable software application. Instrumentation points corresponding to the segments of the embeddable software application are inserted into a plurality of locations within a software binary to create a modified software binary. The modified software binary thus includes the selected software binary and the embeddable software program.