Linker Targeting for Patching Fully-Linked Executables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for modifying fully-linked executable binaries lack efficiency and flexibility in adding new routines or patches, leading to increased code lines and debug time.
Innovation Solution
The implementation of on-the-fly linker targeting (OTF) that programmatically generates a linker control program to analyze and inject new routines into existing executables, utilizing automated analysis for destination and size information to optimize space usage and reduce code lines and debug time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If manual methods are used to modify fully-linked software executables, then code can be added or patched, but the process is inefficient and requires extensive manual intervention
Solution Approach 1:
The system performs automated analysis of the executable binary to identify unused space and symbol locations, eliminating the need for manual intervention. The linker control program automatically determines patch placement locations and generates the necessary modifications without human assistance.
Solution Approach 2:
The system performs preliminary automated analysis of the executable binary before modification, identifying all unused space and symbol locations in advance. This preliminary action enables efficient subsequent modification operations without requiring manual analysis during the patching process.
2Productivity
If existing methods are used to patch executables, then modifications can be made, but debug time and code complexity are high
Solution Approach 1:
The system uses automated analysis to provide feedback about the executable's structure, identifying unused space and symbol locations. This feedback mechanism enables precise control over patch placement and reduces the need for iterative debugging by providing accurate information about available modification locations.
3Manufacturing precision
If manual patching methods are used, then code can be injected, but precise control over patch placement is difficult
Solution Approach 1:
The linker control program acts as an intermediary between the patching process and the executable binary. It automatically analyzes the binary, identifies suitable locations for patch insertion, and controls the placement process, thereby achieving precise control without requiring complex manual procedures.
Data Source
AI summary
Systems and methods are provided for programmatically generating programs that control software linkers to place new executable binary code and/or data patches in existing, executable binaries, which may be fully-linked. Examples disclosed herein include obtaining a first executable; obtaining target information that identifies unused space in the first executable; obtaining one or more routines; generating a linker control program based on the target information and the one or more routines; linking, by the linker control program, the one or more routines into one or more second executables; and patching the first executable with the one or more second executables.


