Binary Instrumentation for Software Integration
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


