DLL Manager Injection for Reboot-less Software Upgrades
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing DLL injection methods require rebooting or recycling of the target process to update or delete DLL files, disrupting services, especially in critical software environments like database servers.
Innovation Solution
A computer-implemented method using a DLL manager that allocates virtual memory, writes data and code, and executes a remote thread to load, unload, and exit DLL files without rebooting the operating system, allowing for seamless updates and uninstalls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If DLL files are updated or deleted using existing injection methods, then the software can be updated, but the operating system must be rebooted or the target process recycled, disrupting services
Solution Approach 1:
The patent implements dynamic DLL management by creating a remote thread within the target process that can load and unload DLL files at runtime. This dynamic approach allows the system to update DLL files without static linking constraints, enabling updates while the process remains active and services continue to run.
Solution Approach 2:
The patent introduces a DLL manager as an intermediary component that mediates between the target process and DLL files. The DLL manager handles loading, unloading, and updating of DLL files through controlled entry points, allowing updates to occur without requiring process recycling or system reboot, thus maintaining service continuity.
2Adaptability or versatility
If DLL files are loaded into the target process, then new features and functionality are introduced, but memory consumption increases
Solution Approach 1:
The patent extracts DLL functionality from the main executable, allowing features to be loaded dynamically only when needed. The DLL manager loads specific DLL files containing required functions, classes, and resources into the target process's address space, enabling the base program to remain compact while maintaining full functionality through selective loading.
Solution Approach 2:
The system dynamically loads DLL files into the target process only when specific functionality is required, rather than statically linking all features at compile time. This allows the program to adapt its memory footprint based on actual runtime needs, loading additional features on-demand and unloading them when no longer required.
Data Source
AI summary
Systems, methods, and computer programming products for loading and upgrading software using DLL files injected into a running target program process by a DLL manager of an injection program. Background services of the injection program allocate virtual memory for the code and data within the memory addresses dedicated to the target program process and injects the code and data by writing the code and data of the DLL manager to the virtual memory. A remote thread created within the target program process, controlled by the injection program, executes the DLL manager code, allowing the DLL manager to load and unload DLL files within the target program process. During runtime of the target program process the software can be upgraded, without rebooting the OS executing the target program process, by instructing the DLL manager to unload the DLL file(s), and load and/or re-load updated DLL file(s) within the target program process.


