Proxy Process for Agent Injection in Statically Linked Binaries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automated agent injection systems are ineffective for statically linked, self-contained binaries as they do not use dynamic loading functionality, which is required for automatic agent injection.

Innovation Solution

The system intercepts system calls dedicated to binary execution, checks if the binary is statically or dynamically linked, and adapts the system call to execute a proxy process instead of the original binary for statically linked binaries. The proxy process loads the binary, transfers its memory image, and instruments it with agent functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If dynamic loading functionality is used for automatic agent injection, then agent injection works for dynamically linked binaries, but it does not work for statically linked binaries

Engineering Contradiction:
Improveagent injection capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a proxy process as an intermediary between the kernel loader and the statically linked binary. The proxy process intercepts the binary execution request, loads the binary into memory, and then executes it. This intermediary enables agent injection by creating a controlled environment where the binary can be loaded and executed with monitoring capabilities, resolving the contradiction between simplicity and adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary actions by intercepting the binary execution request before the actual execution occurs. The system checks whether the binary is statically linked, and if so, spawns a proxy process that prepares the binary for execution. This preliminary interception and preparation enables agent injection to work for statically linked binaries without changing the binaries themselves.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If statically linked binaries are executed directly, then execution is simple and fast, but agent injection is not possible

Engineering Contradiction:
Improveexecution speedVSAvoidmonitoring capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The proxy process serves as a mediator that sits between the direct execution path and the monitoring system. It allows the binary to execute with minimal overhead while enabling the monitoring system to observe and instrument the execution. This resolves the contradiction by maintaining execution efficiency while adding monitoring capability through the intermediary layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If a proxy process is introduced to enable agent injection, then agent injection works for statically linked binaries, but system complexity increases

Engineering Contradiction:
Improveagent injection capabilityVSAvoidprocess architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The proxy process is designed as a simple intermediary that performs three main functions: intercepting binary execution requests, loading the binary into memory, and executing it. By keeping the proxy process architecture simple and focused on these core functions, the patent minimizes the increase in system complexity while achieving agent injection capability for statically linked binaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250036551A1Automatic Injection Of Agents Into Processes Executing Statically Linked Binaries
Publication Date: 2025.01.30 DYNATRACE LLC
  • US20250036551A1 patent drawing
  • US20250036551A1 patent drawing
  • US20250036551A1 patent drawing

AI summary

A computer-implemented method is presented for reporting monitoring data in a distributed computing system. The method includes: instrumenting service code with an agent, where the service code executes statelessly in an execution environment; capturing, by the agent, monitoring date during a first execution of the service code in the execution environment, where the monitoring data is indicative performance of the service code during the first execution; storing, by the agent, the monitoring data on an execution instance of the service code; and sending, by the agent, the monitoring data to a remote monitoring server during a second execution of the service code, where the second execution of the service code occurs after the first execution of the service code and the agent is located remotely across a network from the monitoring server.