Linker Targeting for Patching Fully-Linked Executables

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvemodification efficiencyVSAvoidmanual intervention requirement
Core Design Contradiction:
ProductivityVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If existing methods are used to patch executables, then modifications can be made, but debug time and code complexity are high

Engineering Contradiction:
Improvesoftware updating speedVSAvoiddebug time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #23Feedback

3Manufacturing precision

If manual patching methods are used, then code can be injected, but precise control over patch placement is difficult

Engineering Contradiction:
Improvepatch placement precisionVSAvoidcode modification complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12613693B2On-the-fly linker targeting
Publication Date: 2026.04.28 RED BALLOON SECURITY INC
  • US12613693B2 patent drawing
  • US12613693B2 patent drawing
  • US12613693B2 patent drawing

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.