Merging Binary Executables via Virtual Memory Address Rebase
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge lies in merging multiple binary executable files into a single executable while addressing overlapping address issues and handling position-dependent code elements, which is crucial for creating a single downloadable application that can execute all desired functions without requiring access to the source code.
Innovation Solution
The process involves creating a single virtual memory space, adapting binding addresses, and rebasing addresses to merge multiple executable files into a single binary executable, specifically by stripping meta-data, merging segments, updating linking information, and rebasing dynamic libraries to ensure correct operation across different address spaces.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If multiple binary executable files are merged into a single executable, then the number of downloadable applications is reduced to one, but address overlaps and position-dependent code issues arise that prevent correct execution
Solution Approach 1:
The patent transitions from physical address space to virtual address space, allowing multiple executables with overlapping physical addresses to coexist by mapping them to non-overlapping virtual addresses. The merging tool creates a unified virtual memory map that resolves address conflicts while maintaining the original executables' integrity.
Solution Approach 2:
The patent changes the addressing parameter from physical addresses to virtual addresses, and modifies binding addresses, offset addresses, and rebase addresses to ensure position-independent execution. This parameter transformation allows the merged executable to correctly reference code and data from all component executables regardless of their original address assignments.
2Ease of manufacture
If source code access is required for merging or adapting functionality, then precise control over code integration is achieved, but the process becomes more complex and requires additional steps
Solution Approach 1:
The patent enables the merging tool to automatically analyze binary executables, extract their address spaces, identify overlaps, and perform the necessary address transformations without requiring source code access. The tool self-services the entire merging process by working directly with the binary format and metadata of the executables.
Solution Approach 2:
The patent replaces the manual source code analysis and integration process with an automated binary-level merging system. Instead of requiring developers to manually examine and integrate source code, the tool mechanically processes binary files, automatically resolving address conflicts and creating the merged executable.
3Productivity
If position-dependent code elements are simply merged without address adaptation, then the merging process is simplified, but the code will not operate correctly in the merged executable
Solution Approach 1:
The patent performs preliminary address analysis and transformation during the merging process. Before executing the merged code, the tool pre-calculates and applies the necessary address adjustments to binding addresses, offset addresses, and rebase addresses, ensuring that position-dependent code elements will execute correctly without requiring runtime address resolution.
Data Source
AI summary
The huge market of smartphones demands a vast number of applications with varying capabilities. For this, it is desirable that capabilities of two or more pieces of executables will be delivered together. However, several operation systems, such as Apple iOS, do not allow downloading an application with more than one binary executable file. The purpose of this invention is to allow merging of several, two or more, pieces of binary executables, without an access to any of which source code. The merging process will handle the addressing environment required for correct code operation—creating a single virtual memory space and adapting the binding addresses, offset addresses and base addresses. This will enable executing all desired functionality from a single piece of a binary executable which can be downloaded as a single application from the app store. Problems of existing mobile OSes for application downloading will be resolved.


