Process I/O Interception via Parasite Code Injection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems cannot modify existing compiled computer programs to access or modify communication channels between processes and system resources, such as files, without requiring recompilation or restart.

Innovation Solution

A method and system that interrupt the execution of a process, load parasite code, establish a communication channel between processes, update file descriptor tables to reference the channel, and transfer system resources, allowing data processing actions like encryption and decryption without recompiling or restarting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If parasite code is loaded into a running process to modify its behavior, then the program can be modified without recompilation, but the system stability and security may be compromised

Engineering Contradiction:
Improveprogram modifiabilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent uses file descriptor tables as an intermediary mechanism between the running process and system resources. By modifying the file descriptor table to redirect I/O operations through a communication channel, the system enables program modification without directly injecting code into the running process, thus maintaining stability while achieving adaptability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the I/O operation into multiple components: the original process, the file descriptor table, the communication channel, and the target process. This segmentation allows modification of the I/O path without affecting the integrity of the original process execution, resolving the contradiction between modifiability and stability

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If file descriptor tables are updated to reference communication channels, then data flow can be intercepted and processed, but the complexity of the system increases

Engineering Contradiction:
Improvedata flow controlVSAvoidsystem architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The file descriptor table is given multiple functions: it continues to serve as the standard I/O interface for processes while simultaneously acting as a redirection mechanism for intercepting data flow. This multi-functionality enables data flow control without adding separate complex infrastructure, as the existing file descriptor mechanism handles both original and intercepted operations

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

3Adaptability or versatility

If communication channels are established between processes to transfer system resources, then flexibility in resource management is improved, but the time and overhead for resource transfer increases

Engineering Contradiction:
Improveresource management flexibilityVSAvoidresource transfer time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The communication channel is established and file descriptor table is updated before the actual data transfer occurs. This preliminary setup allows the I/O operations to be redirected seamlessly, so that during normal operation, data flows through the communication channel without additional transfer overhead, as the redirection is already in place

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10915335B1System and method for intercepting data flow between computer process and system resource
Publication Date: 2021.02.09 VIRTUOZZO INT GMBH
  • US10915335B1 patent drawing
  • US10915335B1 patent drawing
  • US10915335B1 patent drawing

AI summary

System for redirecting input/output, which performs, on a CPU, interrupting an execution of a first process with a first object descriptor table associated with the first process, the first object descriptor table including a reference for the first process to a first system resource; loading parasite code into memory, wherein the parasite code provides access to a second system resource under control of a second process; the second process forcing a switch of execution from the first process to the parasite code, and replacing in the first object descriptor table the reference for the first process to the system resource by a reference to the second system resource, thereby causing the input/output to go through the second system resource instead of the first system resource; and restoring the execution of the first process after the execution of the parasite code is complete.