Software Patching via Function Call Interception

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional patching methods are burdensome, inefficient, and disruptive, requiring multiple patches for different flavors of executable code modules, large patch sizes, separate testing, administrative permissions, and potential disruptions to computer systems, while also being difficult to apply and manage, especially for hot fixes and non-standard module locations.

Innovation Solution

A software facility for patching that enables hot patching, cold patching, load-time patching, and call-interception patching, allowing patches to be applied automatically and persistently without requiring knowledge of the module's location, with data-driven or code-driven approaches, automated validation, and configuration options for testing and result handling, reducing the need for administrative permissions and minimizing disruptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional patching methods are used to modify executable code modules, then program functionality can be corrected or improved, but the patching process becomes burdensome and disruptive requiring administrative permissions and system restarts

Engineering Contradiction:
Improveprogram correctnessVSAvoidpatching burden
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces a mediator component that intercepts function calls to the executable code module. This mediator applies patches transparently without requiring direct modification of the original module, thereby avoiding the need for administrative permissions and system restarts while still achieving the desired functional corrections

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical replacement approach (uninstalling and reinstalling patched modules) with a software-based interception and redirection mechanism. This substitution allows patches to be applied dynamically through code redirection rather than physical module replacement, eliminating disruptions

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

2Adaptability or versatility

If multiple patches are distributed for different flavors of executable code modules, then all system configurations can be covered, but patch selection and management becomes extremely complex

Engineering Contradiction:
Improvesystem compatibilityVSAvoidpatch management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal patching mechanism that can handle multiple executable code module flavors through a single unified approach. The interception mechanism automatically detects the specific module being called and applies the appropriate patch without requiring users to manually select or manage multiple different patches

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the patching logic into a single centralized interception component that handles all module variants. Instead of distributing separate patches for each module flavor, the system combines all patching functionality into one unified solution that automatically adapts to the specific module being executed

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If entire executable code modules are distributed as patches, then complete functionality can be updated, but patch size becomes very large making distribution and storage difficult

Engineering Contradiction:
Improveupdate completenessVSAvoidpatch size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary patching logic and interception mechanisms from the entire executable code module. Instead of distributing complete module replacements, the system extracts and distributes only the minimal patch components needed to intercept and modify specific function calls, dramatically reducing patch size while maintaining update completeness

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7890946B2Efficient patching
Publication Date: 2011.02.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7890946B2 patent drawing
  • US7890946B2 patent drawing
  • US7890946B2 patent drawing

AI summary

A facility for augmenting software in a target computer system is described. The facility receives and augmentation specification in the target computer system. The augmentations specification specifies: (a) a function to be augmented, (b) a parameter of the function to be tested, (c) a test to apply to the specified parameter, and (d) and modification to perform to the behavior of the function if the specified test is not satisfied by the specified parameter. When the specified function is invoked on the target computer system, if the specified tested is not satisfied by the specified parameter, the facility performs the specified modification to the behavior of the specified function.