Pathname Independent Binary Probing via Hash-Based Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in applying runtime instrumentation, such as live patches, to applications and services running within containers or virtual machines, as they often require knowledge of the exact name and location of the application, service, or shared library, which can be complex due to multiple versions and installations across the system.

Innovation Solution

A probing application is created that uses build identifiers and debug information to modify the functionality of binary files during execution, independent of their location, by intercepting system calls and inserting object code into memory, allowing for live patching and instrumentation without relying on file names or paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If runtime instrumentation is applied using traditional methods, then patches can be applied to applications, but the system requires knowledge of exact name and location of applications which increases complexity

Engineering Contradiction:
Improvepatch application reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary hashing mechanism that transforms application file paths into hash values. This intermediary layer decouples the patching system from direct knowledge of application locations, allowing reliable patch application without requiring the system to track exact file paths and locations of applications and services.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple versions of applications are supported, then system versatility is improved, but difficulty in identifying correct version increases

Engineering Contradiction:
Improveversion support capabilityVSAvoidversion identification difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent changes the identification parameter from human-readable file paths to cryptographic hash values. By computing hashes from application binaries and using them as unique identifiers, the system can reliably distinguish between multiple versions of applications and services, making version identification automated and accurate regardless of how many versions exist in the system.

Inventive Principle:
Principle #35Parameter changes

3Duration of action of stationary object

If live patching is performed during execution, then system availability is maintained, but precision in targeting specific binary versions is required

Engineering Contradiction:
Improvesystem availabilityVSAvoidbinary version targeting precision
Core Design Contradiction:
Duration of action of stationary objectVSManufacturing precision

Solution Approach 1:

The patent replaces the mechanical approach of path-based identification with a cryptographic hashing system. By substituting file path strings with hash values computed from the actual binary content, the system achieves precise targeting of specific binary versions during live patching, ensuring that patches are applied to the correct application version even when multiple versions coexist.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11599342B2Pathname independent probing of binaries
Publication Date: 2023.03.07 RED HAT INC
  • US11599342B2 patent drawing
  • US11599342B2 patent drawing
  • US11599342B2 patent drawing

AI summary

A system includes one or more processors in communication with a memory and configured to receive a task to probe a portion of the memory associated with a version of a binary file during execution of the binary file. The task includes a portion of object code and a hash identifier, both associated with the version of the binary file. A database mapping hash identifiers to debug information associated with installed binary files is accessed. Debug information for the version of the binary file associated with the hash identifier is retrieved. A probing application is built using the debug information and the portion of object code. Upon execution of the version of the binary file, the probing application places the object code into the portion of the memory.